<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE LambdaCase #-}</span><span>
</span><span id="line-2"></span><span>
</span><span id="line-3"></span><span class="hs-comment">{-
(c) The University of Glasgow 2006-2012
(c) The GRASP Project, Glasgow University, 1992-1998
-}</span><span>
</span><span id="line-7"></span><span>
</span><span id="line-8"></span><span class="hs-comment">-- | This module defines classes and functions for pretty-printing. It also</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- exports a number of helpful debugging and other utilities such as 'trace' and 'panic'.</span><span>
</span><span id="line-10"></span><span class="hs-comment">--</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- The interface to this module is very similar to the standard Hughes-PJ pretty printing</span><span>
</span><span id="line-12"></span><span class="hs-comment">-- module, except that it exports a number of additional functions that are rarely used,</span><span>
</span><span id="line-13"></span><span class="hs-comment">-- and works over the 'SDoc' type.</span><span>
</span><span id="line-14"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Utils.Outputable</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-15"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Type classes</span></span><span>
</span><span id="line-16"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier">Outputable</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier">OutputableBndr</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>
</span><span id="line-18"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Pretty printing combinators</span></span><span>
</span><span id="line-19"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier">SDoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier">runSDoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier">initSDocContext</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-20"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier">docToSDoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-21"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#interppSP"><span class="hs-identifier">interppSP</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#interpp%27SP"><span class="hs-identifier">interpp'SP</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-22"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprQuotedList"><span class="hs-identifier">pprQuotedList</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprWithCommas"><span class="hs-identifier">pprWithCommas</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#quotedListWithOr"><span class="hs-identifier">quotedListWithOr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#quotedListWithNor"><span class="hs-identifier">quotedListWithNor</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-23"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprWithBars"><span class="hs-identifier">pprWithBars</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-24"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier">empty</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#isEmpty"><span class="hs-identifier">isEmpty</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier">nest</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-25"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier">char</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-26"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier">text</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier">ftext</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier">ptext</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#ztext"><span class="hs-identifier">ztext</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-27"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier">int</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#intWithCommas"><span class="hs-identifier">intWithCommas</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier">integer</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#word"><span class="hs-identifier">word</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#float"><span class="hs-identifier">float</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#double"><span class="hs-identifier">double</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#rational"><span class="hs-identifier">rational</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#doublePrec"><span class="hs-identifier">doublePrec</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-28"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier">parens</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#cparen"><span class="hs-identifier">cparen</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier">brackets</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier">braces</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#quotes"><span class="hs-identifier">quotes</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#quote"><span class="hs-identifier">quote</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-29"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier">doubleQuotes</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#angleBrackets"><span class="hs-identifier">angleBrackets</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-30"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#semi"><span class="hs-identifier">semi</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier">comma</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier">colon</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#dcolon"><span class="hs-identifier">dcolon</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier">space</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier">equals</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#dot"><span class="hs-identifier">dot</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#vbar"><span class="hs-identifier">vbar</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-31"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#arrow"><span class="hs-identifier">arrow</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#lollipop"><span class="hs-identifier">lollipop</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#larrow"><span class="hs-identifier">larrow</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#darrow"><span class="hs-identifier">darrow</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#arrowt"><span class="hs-identifier">arrowt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#larrowt"><span class="hs-identifier">larrowt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#arrowtt"><span class="hs-identifier">arrowtt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#larrowtt"><span class="hs-identifier">larrowtt</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-32"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier">lparen</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier">rparen</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#lbrack"><span class="hs-identifier">lbrack</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#rbrack"><span class="hs-identifier">rbrack</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#lbrace"><span class="hs-identifier">lbrace</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#rbrace"><span class="hs-identifier">rbrace</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#underscore"><span class="hs-identifier">underscore</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#mulArrow"><span class="hs-identifier">mulArrow</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-33"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#blankLine"><span class="hs-identifier">blankLine</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#forAllLit"><span class="hs-identifier">forAllLit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#bullet"><span class="hs-identifier">bullet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-34"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator">(&lt;&gt;)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator">(&lt;+&gt;)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier">hcat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier">hsep</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-35"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator">($$)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator">($+$)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier">vcat</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-36"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier">sep</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#cat"><span class="hs-identifier">cat</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-37"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier">fsep</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#fcat"><span class="hs-identifier">fcat</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-38"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier">hang</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#hangNotEmpty"><span class="hs-identifier">hangNotEmpty</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier">punctuate</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppWhen"><span class="hs-identifier">ppWhen</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppUnless"><span class="hs-identifier">ppUnless</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-39"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppWhenOption"><span class="hs-identifier">ppWhenOption</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppUnlessOption"><span class="hs-identifier">ppUnlessOption</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-40"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier">speakNth</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier">speakN</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNOf"><span class="hs-identifier">speakNOf</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#plural"><span class="hs-identifier">plural</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#isOrAre"><span class="hs-identifier">isOrAre</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#doOrDoes"><span class="hs-identifier">doOrDoes</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#itsOrTheir"><span class="hs-identifier">itsOrTheir</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-41"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier">unicodeSyntax</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-42"></span><span>
</span><span id="line-43"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#coloured"><span class="hs-identifier">coloured</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#keyword"><span class="hs-identifier">keyword</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-44"></span><span>
</span><span id="line-45"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Converting 'SDoc' into strings and outputting it</span></span><span>
</span><span id="line-46"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#printSDoc"><span class="hs-identifier">printSDoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#printSDocLn"><span class="hs-identifier">printSDocLn</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#printForUser"><span class="hs-identifier">printForUser</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-47"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#printForC"><span class="hs-identifier">printForC</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#bufLeftRenderSDoc"><span class="hs-identifier">bufLeftRenderSDoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-48"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprCode"><span class="hs-identifier">pprCode</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#mkCodeStyle"><span class="hs-identifier">mkCodeStyle</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-49"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDoc"><span class="hs-identifier">showSDoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocUnsafe"><span class="hs-identifier">showSDocUnsafe</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocOneLine"><span class="hs-identifier">showSDocOneLine</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-50"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocForUser"><span class="hs-identifier">showSDocForUser</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocDebug"><span class="hs-identifier">showSDocDebug</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocDump"><span class="hs-identifier">showSDocDump</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocDumpOneLine"><span class="hs-identifier">showSDocDumpOneLine</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-51"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocUnqual"><span class="hs-identifier">showSDocUnqual</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#showPpr"><span class="hs-identifier">showPpr</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-52"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier">renderWithStyle</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-53"></span><span>
</span><span id="line-54"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprInfixVar"><span class="hs-identifier">pprInfixVar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrefixVar"><span class="hs-identifier">pprPrefixVar</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-55"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprHsChar"><span class="hs-identifier">pprHsChar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprHsString"><span class="hs-identifier">pprHsString</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprHsBytes"><span class="hs-identifier">pprHsBytes</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-56"></span><span>
</span><span id="line-57"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#primFloatSuffix"><span class="hs-identifier">primFloatSuffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primCharSuffix"><span class="hs-identifier">primCharSuffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primWordSuffix"><span class="hs-identifier">primWordSuffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primDoubleSuffix"><span class="hs-identifier">primDoubleSuffix</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-58"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#primInt64Suffix"><span class="hs-identifier">primInt64Suffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primWord64Suffix"><span class="hs-identifier">primWord64Suffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primIntSuffix"><span class="hs-identifier">primIntSuffix</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-59"></span><span>
</span><span id="line-60"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimChar"><span class="hs-identifier">pprPrimChar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimInt"><span class="hs-identifier">pprPrimInt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimWord"><span class="hs-identifier">pprPrimWord</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimInt64"><span class="hs-identifier">pprPrimInt64</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimWord64"><span class="hs-identifier">pprPrimWord64</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-61"></span><span>
</span><span id="line-62"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprFastFilePath"><span class="hs-identifier">pprFastFilePath</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprFilePathString"><span class="hs-identifier">pprFilePathString</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Controlling the style in which output is printed</span></span><span>
</span><span id="line-65"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#BindingSite"><span class="hs-identifier">BindingSite</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-66"></span><span>
</span><span id="line-67"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier">PprStyle</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#CodeStyle"><span class="hs-identifier">CodeStyle</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier">PrintUnqualified</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-68"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyName"><span class="hs-identifier">QueryQualifyName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyModule"><span class="hs-identifier">QueryQualifyModule</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyPackage"><span class="hs-identifier">QueryQualifyPackage</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-69"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#reallyAlwaysQualify"><span class="hs-identifier">reallyAlwaysQualify</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#reallyAlwaysQualifyNames"><span class="hs-identifier">reallyAlwaysQualifyNames</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-70"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#alwaysQualify"><span class="hs-identifier">alwaysQualify</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#alwaysQualifyNames"><span class="hs-identifier">alwaysQualifyNames</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#alwaysQualifyModules"><span class="hs-identifier">alwaysQualifyModules</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-71"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#neverQualify"><span class="hs-identifier">neverQualify</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#neverQualifyNames"><span class="hs-identifier">neverQualifyNames</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#neverQualifyModules"><span class="hs-identifier">neverQualifyModules</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-72"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#alwaysQualifyPackages"><span class="hs-identifier">alwaysQualifyPackages</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#neverQualifyPackages"><span class="hs-identifier">neverQualifyPackages</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-73"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#QualifyName"><span class="hs-identifier">QualifyName</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#queryQual"><span class="hs-identifier">queryQual</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-74"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#sdocWithDynFlags"><span class="hs-identifier">sdocWithDynFlags</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier">sdocOption</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-75"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#updSDocContext"><span class="hs-identifier">updSDocContext</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-76"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier">SDocContext</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#sdocWithContext"><span class="hs-identifier">sdocWithContext</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-77"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#getPprStyle"><span class="hs-identifier">getPprStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#withPprStyle"><span class="hs-identifier">withPprStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#setStyleColoured"><span class="hs-identifier">setStyleColoured</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-78"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprDeeper"><span class="hs-identifier">pprDeeper</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprDeeperList"><span class="hs-identifier">pprDeeperList</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprSetDepth"><span class="hs-identifier">pprSetDepth</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-79"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#codeStyle"><span class="hs-identifier">codeStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#userStyle"><span class="hs-identifier">userStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#dumpStyle"><span class="hs-identifier">dumpStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#asmStyle"><span class="hs-identifier">asmStyle</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-80"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#qualName"><span class="hs-identifier">qualName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#qualModule"><span class="hs-identifier">qualModule</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#qualPackage"><span class="hs-identifier">qualPackage</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-81"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#mkErrStyle"><span class="hs-identifier">mkErrStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#defaultErrStyle"><span class="hs-identifier">defaultErrStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#defaultDumpStyle"><span class="hs-identifier">defaultDumpStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#mkDumpStyle"><span class="hs-identifier">mkDumpStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#defaultUserStyle"><span class="hs-identifier">defaultUserStyle</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-82"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#mkUserStyle"><span class="hs-identifier">mkUserStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#cmdlineParserStyle"><span class="hs-identifier">cmdlineParserStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Depth"><span class="hs-identifier">Depth</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-83"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#withUserStyle"><span class="hs-identifier">withUserStyle</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#withErrStyle"><span class="hs-identifier">withErrStyle</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-84"></span><span>
</span><span id="line-85"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#ifPprDebug"><span class="hs-identifier">ifPprDebug</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#whenPprDebug"><span class="hs-identifier">whenPprDebug</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#getPprDebug"><span class="hs-identifier">getPprDebug</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Error handling and debugging utilities</span></span><span>
</span><span id="line-88"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier">pprPanic</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprSorry"><span class="hs-identifier">pprSorry</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#assertPprPanic"><span class="hs-identifier">assertPprPanic</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPgmError"><span class="hs-identifier">pprPgmError</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-89"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprTrace"><span class="hs-identifier">pprTrace</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceDebug"><span class="hs-identifier">pprTraceDebug</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceWith"><span class="hs-identifier">pprTraceWith</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceIt"><span class="hs-identifier">pprTraceIt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#warnPprTrace"><span class="hs-identifier">warnPprTrace</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-90"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprSTrace"><span class="hs-identifier">pprSTrace</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceException"><span class="hs-identifier">pprTraceException</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceM"><span class="hs-identifier">pprTraceM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceWithFlags"><span class="hs-identifier">pprTraceWithFlags</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-91"></span><span>        </span><span class="annot"><a href="../../base/src/Debug.Trace.html#trace"><span class="hs-identifier">trace</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#pgmError"><span class="hs-identifier">pgmError</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier">panic</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#sorry"><span class="hs-identifier">sorry</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#assertPanic"><span class="hs-identifier">assertPanic</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-92"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprDebugAndThen"><span class="hs-identifier">pprDebugAndThen</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#callStackDoc"><span class="hs-identifier">callStackDoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-93"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-94"></span><span>
</span><span id="line-95"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-96"></span><span>
</span><span id="line-97"></span><span class="hs-keyword">import</span><span> </span><span class="hs-pragma">{-# SOURCE</span><span> </span><span class="hs-pragma">#-}</span><span>   </span><span class="annot"><a href="GHC.Driver.Session.html"><span class="hs-identifier">GHC.Driver.Session</span></a></span><span>
</span><span id="line-98"></span><span>                           </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier">DynFlags</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#hasPprDebug"><span class="hs-identifier">hasPprDebug</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#hasNoDebugOutput"><span class="hs-identifier">hasNoDebugOutput</span></a></span><span>
</span><span id="line-99"></span><span>                           </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#unsafeGlobalDynFlags"><span class="hs-identifier">unsafeGlobalDynFlags</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier">initSDocContext</span></a></span><span>
</span><span id="line-100"></span><span>                           </span><span class="hs-special">)</span><span>
</span><span id="line-101"></span><span class="hs-keyword">import</span><span> </span><span class="hs-pragma">{-# SOURCE</span><span> </span><span class="hs-pragma">#-}</span><span>   </span><span class="annot"><a href="GHC.Unit.Types.html"><span class="hs-identifier">GHC.Unit.Types</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier">Unit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier">Module</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier">moduleName</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-102"></span><span class="hs-keyword">import</span><span> </span><span class="hs-pragma">{-# SOURCE</span><span> </span><span class="hs-pragma">#-}</span><span>   </span><span class="annot"><a href="GHC.Unit.Module.Name.html"><span class="hs-identifier">GHC.Unit.Module.Name</span></a></span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier">ModuleName</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-103"></span><span class="hs-keyword">import</span><span> </span><span class="hs-pragma">{-# SOURCE</span><span> </span><span class="hs-pragma">#-}</span><span>   </span><span class="annot"><a href="GHC.Types.Name.Occurrence.html"><span class="hs-identifier">GHC.Types.Name.Occurrence</span></a></span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Name.Occurrence.html#OccName"><span class="hs-identifier">OccName</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-104"></span><span>
</span><span id="line-105"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.BufHandle.html"><span class="hs-identifier">GHC.Utils.BufHandle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.BufHandle.html#BufHandle"><span class="hs-identifier">BufHandle</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-106"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-107"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.html"><span class="hs-identifier">GHC.Utils.Ppr</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Pretty</span></span><span>
</span><span id="line-108"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html"><span class="hs-identifier">GHC.Utils.Misc</span></a></span><span>
</span><span id="line-109"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.Colour.html"><span class="hs-identifier">GHC.Utils.Ppr.Colour</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Col</span></span><span>
</span><span id="line-110"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.html"><span class="hs-identifier">GHC.Utils.Ppr</span></a></span><span>       </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.html#Doc"><span class="hs-identifier">Doc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.html#Mode"><span class="hs-identifier">Mode</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-111"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.html"><span class="hs-identifier">GHC.Utils.Panic</span></a></span><span>
</span><span id="line-112"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Serialized.html#"><span class="hs-identifier">GHC.Serialized</span></a></span><span>
</span><span id="line-113"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.LanguageExtensions.html#"><span class="hs-identifier">GHC.LanguageExtensions</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../ghc-boot-th/src/GHC.LanguageExtensions.Type.html#Extension"><span class="hs-identifier">Extension</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-114"></span><span>
</span><span id="line-115"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.html#"><span class="hs-identifier">Data.ByteString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../bytestring/src/Data.ByteString.Internal.html#ByteString"><span class="hs-identifier">ByteString</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-116"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.html#"><span class="hs-identifier">Data.ByteString</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">BS</span></span><span>
</span><span id="line-117"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Char.html#"><span class="hs-identifier">Data.Char</span></a></span><span>
</span><span id="line-118"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.html#"><span class="hs-identifier">Data.Map</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">M</span></span><span>
</span><span id="line-119"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Int.html#"><span class="hs-identifier">Data.Int</span></a></span><span>
</span><span id="line-120"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.IntMap.html#"><span class="hs-identifier">Data.IntMap</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">IM</span></span><span>
</span><span id="line-121"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.html#"><span class="hs-identifier">Data.Set</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier">Set</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-122"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.html#"><span class="hs-identifier">Data.Set</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Set</span></span><span>
</span><span id="line-123"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.String.html#"><span class="hs-identifier">Data.String</span></a></span><span>
</span><span id="line-124"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Word.html#"><span class="hs-identifier">Data.Word</span></a></span><span>
</span><span id="line-125"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.IO.html#"><span class="hs-identifier">System.IO</span></a></span><span>        </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Types.html#Handle"><span class="hs-identifier">Handle</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-126"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../filepath/src/System.FilePath.html#"><span class="hs-identifier">System.FilePath</span></a></span><span>
</span><span id="line-127"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Text.Printf.html#"><span class="hs-identifier">Text.Printf</span></a></span><span>
</span><span id="line-128"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Numeric.html#"><span class="hs-identifier">Numeric</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Numeric.html#showFFloat"><span class="hs-identifier">showFFloat</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-129"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../containers/src/Data.Graph.html#"><span class="hs-identifier">Data.Graph</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Graph.html#SCC"><span class="hs-identifier">SCC</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-130"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.List.html#"><span class="hs-identifier">Data.List</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.OldList.html#intersperse"><span class="hs-identifier">intersperse</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-131"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.List.NonEmpty.html#"><span class="hs-identifier">Data.List.NonEmpty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#NonEmpty"><span class="hs-identifier">NonEmpty</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-132"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../base/src/Data.List.NonEmpty.html#"><span class="hs-identifier">Data.List.NonEmpty</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">NEL</span></span><span>
</span><span id="line-133"></span><span>
</span><span id="line-134"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Fingerprint.html#"><span class="hs-identifier">GHC.Fingerprint</span></a></span><span>
</span><span id="line-135"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#"><span class="hs-identifier">GHC.Show</span></a></span><span>         </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#showMultiLineString"><span class="hs-identifier">showMultiLineString</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-136"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.html#"><span class="hs-identifier">GHC.Stack</span></a></span><span>        </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.html#callStack"><span class="hs-identifier">callStack</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Exception.html#prettyCallStack"><span class="hs-identifier">prettyCallStack</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.IO.Class.html#"><span class="hs-identifier">Control.Monad.IO.Class</span></a></span><span>
</span><span id="line-138"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Exception.html"><span class="hs-identifier">GHC.Utils.Exception</span></a></span><span>
</span><span id="line-139"></span><span>
</span><span id="line-140"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{The @PprStyle@ data type}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-147"></span><span>
</span><span id="line-148"></span><span class="hs-keyword">data</span><span> </span><span id="PprStyle"><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-var">PprStyle</span></a></span></span><span>
</span><span id="line-149"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="PprUser"><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-var">PprUser</span></a></span></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Depth"><span class="hs-identifier hs-type">Depth</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Coloured"><span class="hs-identifier hs-type">Coloured</span></a></span><span>
</span><span id="line-150"></span><span>                </span><span class="hs-comment">-- Pretty-print in a way that will make sense to the</span><span>
</span><span id="line-151"></span><span>                </span><span class="hs-comment">-- ordinary user; must be very close to Haskell</span><span>
</span><span id="line-152"></span><span>                </span><span class="hs-comment">-- syntax, etc.</span><span>
</span><span id="line-153"></span><span>                </span><span class="hs-comment">-- Assumes printing tidied code: non-system names are</span><span>
</span><span id="line-154"></span><span>                </span><span class="hs-comment">-- printed without uniques.</span><span>
</span><span id="line-155"></span><span>
</span><span id="line-156"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PprDump"><span class="annot"><a href="GHC.Utils.Outputable.html#PprDump"><span class="hs-identifier hs-var">PprDump</span></a></span></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span>
</span><span id="line-157"></span><span>                </span><span class="hs-comment">-- For -ddump-foo; less verbose than in ppr-debug mode, but more than PprUser</span><span>
</span><span id="line-158"></span><span>                </span><span class="hs-comment">-- Does not assume tidied code: non-external names</span><span>
</span><span id="line-159"></span><span>                </span><span class="hs-comment">-- are printed with uniques.</span><span>
</span><span id="line-160"></span><span>
</span><span id="line-161"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PprCode"><span class="annot"><a href="GHC.Utils.Outputable.html#PprCode"><span class="hs-identifier hs-var">PprCode</span></a></span></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#CodeStyle"><span class="hs-identifier hs-type">CodeStyle</span></a></span><span>
</span><span id="line-162"></span><span>                </span><span class="hs-comment">-- Print code; either C or assembler</span><span>
</span><span id="line-163"></span><span>
</span><span id="line-164"></span><span class="hs-keyword">data</span><span> </span><span id="CodeStyle"><span class="annot"><a href="GHC.Utils.Outputable.html#CodeStyle"><span class="hs-identifier hs-var">CodeStyle</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="CStyle"><span class="annot"><a href="GHC.Utils.Outputable.html#CStyle"><span class="hs-identifier hs-var">CStyle</span></a></span></span><span>         </span><span class="hs-comment">-- The format of labels differs for C and assembler</span><span>
</span><span id="line-165"></span><span>               </span><span class="hs-glyph">|</span><span> </span><span id="AsmStyle"><span class="annot"><a href="GHC.Utils.Outputable.html#AsmStyle"><span class="hs-identifier hs-var">AsmStyle</span></a></span></span><span>
</span><span id="line-166"></span><span>
</span><span id="line-167"></span><span class="hs-keyword">data</span><span> </span><span id="Depth"><span class="annot"><a href="GHC.Utils.Outputable.html#Depth"><span class="hs-identifier hs-var">Depth</span></a></span></span><span>
</span><span id="line-168"></span><span>   </span><span class="hs-glyph">=</span><span> </span><span id="AllTheWay"><span class="annot"><a href="GHC.Utils.Outputable.html#AllTheWay"><span class="hs-identifier hs-var">AllTheWay</span></a></span></span><span>
</span><span id="line-169"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span id="PartWay"><span class="annot"><a href="GHC.Utils.Outputable.html#PartWay"><span class="hs-identifier hs-var">PartWay</span></a></span></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>  </span><span class="hs-comment">-- ^ 0 =&gt; stop</span><span>
</span><span id="line-170"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span id="DefaultDepth"><span class="annot"><a href="GHC.Utils.Outputable.html#DefaultDepth"><span class="hs-identifier hs-var">DefaultDepth</span></a></span></span><span> </span><span class="hs-comment">-- ^ Use 'sdocDefaultDepth' field as depth</span><span>
</span><span id="line-171"></span><span>
</span><span id="line-172"></span><span class="hs-keyword">data</span><span> </span><span id="Coloured"><span class="annot"><a href="GHC.Utils.Outputable.html#Coloured"><span class="hs-identifier hs-var">Coloured</span></a></span></span><span>
</span><span id="line-173"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="Uncoloured"><span class="annot"><a href="GHC.Utils.Outputable.html#Uncoloured"><span class="hs-identifier hs-var">Uncoloured</span></a></span></span><span>
</span><span id="line-174"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="Coloured"><span class="annot"><a href="GHC.Utils.Outputable.html#Coloured"><span class="hs-identifier hs-var">Coloured</span></a></span></span><span>
</span><span id="line-175"></span><span>
</span><span id="line-176"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-177"></span><span class="hs-comment">-- Printing original names</span><span>
</span><span id="line-178"></span><span>
</span><span id="line-179"></span><span class="hs-comment">-- | When printing code that contains original names, we need to map the</span><span>
</span><span id="line-180"></span><span class="hs-comment">-- original names back to something the user understands.  This is the</span><span>
</span><span id="line-181"></span><span class="hs-comment">-- purpose of the triple of functions that gets passed around</span><span>
</span><span id="line-182"></span><span class="hs-comment">-- when rendering 'SDoc'.</span><span>
</span><span id="line-183"></span><span class="hs-keyword">data</span><span> </span><span id="PrintUnqualified"><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-var">PrintUnqualified</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="QueryQualify"><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualify"><span class="hs-identifier hs-var">QueryQualify</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-184"></span><span>    </span><span id="queryQualifyName"><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#queryQualifyName"><span class="hs-identifier hs-var hs-var">queryQualifyName</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyName"><span class="hs-identifier hs-type">QueryQualifyName</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-185"></span><span>    </span><span id="queryQualifyModule"><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#queryQualifyModule"><span class="hs-identifier hs-var hs-var">queryQualifyModule</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyModule"><span class="hs-identifier hs-type">QueryQualifyModule</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-186"></span><span>    </span><span id="queryQualifyPackage"><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#queryQualifyPackage"><span class="hs-identifier hs-var hs-var">queryQualifyPackage</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyPackage"><span class="hs-identifier hs-type">QueryQualifyPackage</span></a></span><span>
</span><span id="line-187"></span><span class="hs-special">}</span><span>
</span><span id="line-188"></span><span>
</span><span id="line-189"></span><span class="hs-comment">-- | Given a `Name`'s `Module` and `OccName`, decide whether and how to qualify</span><span>
</span><span id="line-190"></span><span class="hs-comment">-- it.</span><span>
</span><span id="line-191"></span><span class="hs-keyword">type</span><span> </span><span id="QueryQualifyName"><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyName"><span class="hs-identifier hs-var">QueryQualifyName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Name.Occurrence.html#OccName"><span class="hs-identifier hs-type">OccName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QualifyName"><span class="hs-identifier hs-type">QualifyName</span></a></span><span>
</span><span id="line-192"></span><span>
</span><span id="line-193"></span><span class="hs-comment">-- | For a given module, we need to know whether to print it with</span><span>
</span><span id="line-194"></span><span class="hs-comment">-- a package name to disambiguate it.</span><span>
</span><span id="line-195"></span><span class="hs-keyword">type</span><span> </span><span id="QueryQualifyModule"><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyModule"><span class="hs-identifier hs-var">QueryQualifyModule</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-196"></span><span>
</span><span id="line-197"></span><span class="hs-comment">-- | For a given package, we need to know whether to print it with</span><span>
</span><span id="line-198"></span><span class="hs-comment">-- the component id to disambiguate it.</span><span>
</span><span id="line-199"></span><span class="hs-keyword">type</span><span> </span><span id="QueryQualifyPackage"><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyPackage"><span class="hs-identifier hs-var">QueryQualifyPackage</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-200"></span><span>
</span><span id="line-201"></span><span class="hs-comment">-- See Note [Printing original names] in GHC.Driver.Types</span><span>
</span><span id="line-202"></span><span class="hs-keyword">data</span><span> </span><span id="QualifyName"><span class="annot"><a href="GHC.Utils.Outputable.html#QualifyName"><span class="hs-identifier hs-var">QualifyName</span></a></span></span><span>   </span><span class="hs-comment">-- Given P:M.T</span><span>
</span><span id="line-203"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="NameUnqual"><span class="annot"><a href="GHC.Utils.Outputable.html#NameUnqual"><span class="hs-identifier hs-var">NameUnqual</span></a></span></span><span>           </span><span class="hs-comment">-- It's in scope unqualified as &quot;T&quot;</span><span>
</span><span id="line-204"></span><span>                         </span><span class="hs-comment">-- OR nothing called &quot;T&quot; is in scope</span><span>
</span><span id="line-205"></span><span>
</span><span id="line-206"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="NameQual"><span class="annot"><a href="GHC.Utils.Outputable.html#NameQual"><span class="hs-identifier hs-var">NameQual</span></a></span></span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span>  </span><span class="hs-comment">-- It's in scope qualified as &quot;X.T&quot;</span><span>
</span><span id="line-207"></span><span>
</span><span id="line-208"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="NameNotInScope1"><span class="annot"><a href="GHC.Utils.Outputable.html#NameNotInScope1"><span class="hs-identifier hs-var">NameNotInScope1</span></a></span></span><span>      </span><span class="hs-comment">-- It's not in scope at all, but M.T is not bound</span><span>
</span><span id="line-209"></span><span>                         </span><span class="hs-comment">-- in the current scope, so we can refer to it as &quot;M.T&quot;</span><span>
</span><span id="line-210"></span><span>
</span><span id="line-211"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="NameNotInScope2"><span class="annot"><a href="GHC.Utils.Outputable.html#NameNotInScope2"><span class="hs-identifier hs-var">NameNotInScope2</span></a></span></span><span>      </span><span class="hs-comment">-- It's not in scope at all, and M.T is already bound in</span><span>
</span><span id="line-212"></span><span>                         </span><span class="hs-comment">-- the current scope, so we must refer to it as &quot;P:M.T&quot;</span><span>
</span><span id="line-213"></span><span>
</span><span id="line-214"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789587"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QualifyName"><span class="hs-identifier hs-type">QualifyName</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-215"></span><span>  </span><span id="local-6989586621680789585"><span class="annot"><span class="annottext">ppr :: QualifyName -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">QualifyName
</span><a href="GHC.Utils.Outputable.html#NameUnqual"><span class="hs-identifier hs-var">NameUnqual</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NameUnqual&quot;</span></span><span>
</span><span id="line-216"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#NameQual"><span class="hs-identifier hs-type">NameQual</span></a></span><span> </span><span id="local-6989586621680789583"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680789583"><span class="hs-identifier hs-var">_mod</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NameQual&quot;</span></span><span>  </span><span class="hs-comment">-- can't print the mod without module loops :(</span><span>
</span><span id="line-217"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">QualifyName
</span><a href="GHC.Utils.Outputable.html#NameNotInScope1"><span class="hs-identifier hs-var">NameNotInScope1</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NameNotInScope1&quot;</span></span><span>
</span><span id="line-218"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">QualifyName
</span><a href="GHC.Utils.Outputable.html#NameNotInScope2"><span class="hs-identifier hs-var">NameNotInScope2</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NameNotInScope2&quot;</span></span><span>
</span><span id="line-219"></span><span>
</span><span id="line-220"></span><span class="annot"><a href="GHC.Utils.Outputable.html#reallyAlwaysQualifyNames"><span class="hs-identifier hs-type">reallyAlwaysQualifyNames</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyName"><span class="hs-identifier hs-type">QueryQualifyName</span></a></span><span>
</span><span id="line-221"></span><span id="reallyAlwaysQualifyNames"><span class="annot"><span class="annottext">reallyAlwaysQualifyNames :: QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#reallyAlwaysQualifyNames"><span class="hs-identifier hs-var hs-var">reallyAlwaysQualifyNames</span></a></span></span><span> </span><span class="annot"><span class="annottext">Module
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">OccName
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">QualifyName
</span><a href="GHC.Utils.Outputable.html#NameNotInScope2"><span class="hs-identifier hs-var">NameNotInScope2</span></a></span><span>
</span><span id="line-222"></span><span>
</span><span id="line-223"></span><span class="hs-comment">-- | NB: This won't ever show package IDs</span><span>
</span><span id="line-224"></span><span class="annot"><a href="GHC.Utils.Outputable.html#alwaysQualifyNames"><span class="hs-identifier hs-type">alwaysQualifyNames</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyName"><span class="hs-identifier hs-type">QueryQualifyName</span></a></span><span>
</span><span id="line-225"></span><span id="alwaysQualifyNames"><span class="annot"><span class="annottext">alwaysQualifyNames :: QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#alwaysQualifyNames"><span class="hs-identifier hs-var hs-var">alwaysQualifyNames</span></a></span></span><span> </span><span id="local-6989586621680789582"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789582"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="annot"><span class="annottext">OccName
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; QualifyName
</span><a href="GHC.Utils.Outputable.html#NameQual"><span class="hs-identifier hs-var">NameQual</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; ModuleName
forall a. GenModule a -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789582"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-226"></span><span>
</span><span id="line-227"></span><span class="annot"><a href="GHC.Utils.Outputable.html#neverQualifyNames"><span class="hs-identifier hs-type">neverQualifyNames</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyName"><span class="hs-identifier hs-type">QueryQualifyName</span></a></span><span>
</span><span id="line-228"></span><span id="neverQualifyNames"><span class="annot"><span class="annottext">neverQualifyNames :: QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#neverQualifyNames"><span class="hs-identifier hs-var hs-var">neverQualifyNames</span></a></span></span><span> </span><span class="annot"><span class="annottext">Module
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">OccName
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">QualifyName
</span><a href="GHC.Utils.Outputable.html#NameUnqual"><span class="hs-identifier hs-var">NameUnqual</span></a></span><span>
</span><span id="line-229"></span><span>
</span><span id="line-230"></span><span class="annot"><a href="GHC.Utils.Outputable.html#alwaysQualifyModules"><span class="hs-identifier hs-type">alwaysQualifyModules</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyModule"><span class="hs-identifier hs-type">QueryQualifyModule</span></a></span><span>
</span><span id="line-231"></span><span id="alwaysQualifyModules"><span class="annot"><span class="annottext">alwaysQualifyModules :: QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#alwaysQualifyModules"><span class="hs-identifier hs-var hs-var">alwaysQualifyModules</span></a></span></span><span> </span><span class="annot"><span class="annottext">Module
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-232"></span><span>
</span><span id="line-233"></span><span class="annot"><a href="GHC.Utils.Outputable.html#neverQualifyModules"><span class="hs-identifier hs-type">neverQualifyModules</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyModule"><span class="hs-identifier hs-type">QueryQualifyModule</span></a></span><span>
</span><span id="line-234"></span><span id="neverQualifyModules"><span class="annot"><span class="annottext">neverQualifyModules :: QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#neverQualifyModules"><span class="hs-identifier hs-var hs-var">neverQualifyModules</span></a></span></span><span> </span><span class="annot"><span class="annottext">Module
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-235"></span><span>
</span><span id="line-236"></span><span class="annot"><a href="GHC.Utils.Outputable.html#alwaysQualifyPackages"><span class="hs-identifier hs-type">alwaysQualifyPackages</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyPackage"><span class="hs-identifier hs-type">QueryQualifyPackage</span></a></span><span>
</span><span id="line-237"></span><span id="alwaysQualifyPackages"><span class="annot"><span class="annottext">alwaysQualifyPackages :: QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#alwaysQualifyPackages"><span class="hs-identifier hs-var hs-var">alwaysQualifyPackages</span></a></span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-238"></span><span>
</span><span id="line-239"></span><span class="annot"><a href="GHC.Utils.Outputable.html#neverQualifyPackages"><span class="hs-identifier hs-type">neverQualifyPackages</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyPackage"><span class="hs-identifier hs-type">QueryQualifyPackage</span></a></span><span>
</span><span id="line-240"></span><span id="neverQualifyPackages"><span class="annot"><span class="annottext">neverQualifyPackages :: QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#neverQualifyPackages"><span class="hs-identifier hs-var hs-var">neverQualifyPackages</span></a></span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-241"></span><span>
</span><span id="line-242"></span><span class="annot"><a href="GHC.Utils.Outputable.html#reallyAlwaysQualify"><span class="hs-identifier hs-type">reallyAlwaysQualify</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#alwaysQualify"><span class="hs-identifier hs-type">alwaysQualify</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#neverQualify"><span class="hs-identifier hs-type">neverQualify</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span>
</span><span id="line-243"></span><span id="reallyAlwaysQualify"><span class="annot"><span class="annottext">reallyAlwaysQualify :: PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#reallyAlwaysQualify"><span class="hs-identifier hs-var hs-var">reallyAlwaysQualify</span></a></span></span><span>
</span><span id="line-244"></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">QueryQualifyName
-&gt; QueryQualifyModule -&gt; QueryQualifyPackage -&gt; PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#QueryQualify"><span class="hs-identifier hs-var">QueryQualify</span></a></span><span> </span><span class="annot"><span class="annottext">QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#reallyAlwaysQualifyNames"><span class="hs-identifier hs-var">reallyAlwaysQualifyNames</span></a></span><span>
</span><span id="line-245"></span><span>                             </span><span class="annot"><span class="annottext">QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#alwaysQualifyModules"><span class="hs-identifier hs-var">alwaysQualifyModules</span></a></span><span>
</span><span id="line-246"></span><span>                             </span><span class="annot"><span class="annottext">QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#alwaysQualifyPackages"><span class="hs-identifier hs-var">alwaysQualifyPackages</span></a></span><span>
</span><span id="line-247"></span><span id="alwaysQualify"><span class="annot"><span class="annottext">alwaysQualify :: PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#alwaysQualify"><span class="hs-identifier hs-var hs-var">alwaysQualify</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">QueryQualifyName
-&gt; QueryQualifyModule -&gt; QueryQualifyPackage -&gt; PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#QueryQualify"><span class="hs-identifier hs-var">QueryQualify</span></a></span><span> </span><span class="annot"><span class="annottext">QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#alwaysQualifyNames"><span class="hs-identifier hs-var">alwaysQualifyNames</span></a></span><span>
</span><span id="line-248"></span><span>                             </span><span class="annot"><span class="annottext">QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#alwaysQualifyModules"><span class="hs-identifier hs-var">alwaysQualifyModules</span></a></span><span>
</span><span id="line-249"></span><span>                             </span><span class="annot"><span class="annottext">QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#alwaysQualifyPackages"><span class="hs-identifier hs-var">alwaysQualifyPackages</span></a></span><span>
</span><span id="line-250"></span><span id="neverQualify"><span class="annot"><span class="annottext">neverQualify :: PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#neverQualify"><span class="hs-identifier hs-var hs-var">neverQualify</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">QueryQualifyName
-&gt; QueryQualifyModule -&gt; QueryQualifyPackage -&gt; PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#QueryQualify"><span class="hs-identifier hs-var">QueryQualify</span></a></span><span> </span><span class="annot"><span class="annottext">QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#neverQualifyNames"><span class="hs-identifier hs-var">neverQualifyNames</span></a></span><span>
</span><span id="line-251"></span><span>                             </span><span class="annot"><span class="annottext">QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#neverQualifyModules"><span class="hs-identifier hs-var">neverQualifyModules</span></a></span><span>
</span><span id="line-252"></span><span>                             </span><span class="annot"><span class="annottext">QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#neverQualifyPackages"><span class="hs-identifier hs-var">neverQualifyPackages</span></a></span><span>
</span><span id="line-253"></span><span>
</span><span id="line-254"></span><span class="annot"><a href="GHC.Utils.Outputable.html#defaultUserStyle"><span class="hs-identifier hs-type">defaultUserStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-255"></span><span id="defaultUserStyle"><span class="annot"><span class="annottext">defaultUserStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#defaultUserStyle"><span class="hs-identifier hs-var hs-var">defaultUserStyle</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkUserStyle"><span class="hs-identifier hs-var">mkUserStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#neverQualify"><span class="hs-identifier hs-var">neverQualify</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="GHC.Utils.Outputable.html#AllTheWay"><span class="hs-identifier hs-var">AllTheWay</span></a></span><span>
</span><span id="line-256"></span><span>
</span><span id="line-257"></span><span class="annot"><a href="GHC.Utils.Outputable.html#defaultDumpStyle"><span class="hs-identifier hs-type">defaultDumpStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-258"></span><span> </span><span class="hs-comment">-- Print without qualifiers to reduce verbosity, unless -dppr-debug</span><span>
</span><span id="line-259"></span><span id="defaultDumpStyle"><span class="annot"><span class="annottext">defaultDumpStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#defaultDumpStyle"><span class="hs-identifier hs-var hs-var">defaultDumpStyle</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprDump"><span class="hs-identifier hs-var">PprDump</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#neverQualify"><span class="hs-identifier hs-var">neverQualify</span></a></span><span>
</span><span id="line-260"></span><span>
</span><span id="line-261"></span><span class="annot"><a href="GHC.Utils.Outputable.html#mkDumpStyle"><span class="hs-identifier hs-type">mkDumpStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-262"></span><span id="mkDumpStyle"><span class="annot"><span class="annottext">mkDumpStyle :: PrintUnqualified -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkDumpStyle"><span class="hs-identifier hs-var hs-var">mkDumpStyle</span></a></span></span><span> </span><span id="local-6989586621680789581"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789581"><span class="hs-identifier hs-var">print_unqual</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprDump"><span class="hs-identifier hs-var">PprDump</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789581"><span class="hs-identifier hs-var">print_unqual</span></a></span><span>
</span><span id="line-263"></span><span>
</span><span id="line-264"></span><span class="hs-comment">-- | Default style for error messages, when we don't know PrintUnqualified</span><span>
</span><span id="line-265"></span><span class="hs-comment">-- It's a bit of a hack because it doesn't take into account what's in scope</span><span>
</span><span id="line-266"></span><span class="hs-comment">-- Only used for desugarer warnings, and typechecker errors in interface sigs</span><span>
</span><span id="line-267"></span><span class="annot"><a href="GHC.Utils.Outputable.html#defaultErrStyle"><span class="hs-identifier hs-type">defaultErrStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-268"></span><span id="defaultErrStyle"><span class="annot"><span class="annottext">defaultErrStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#defaultErrStyle"><span class="hs-identifier hs-var hs-var">defaultErrStyle</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkErrStyle"><span class="hs-identifier hs-var">mkErrStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#neverQualify"><span class="hs-identifier hs-var">neverQualify</span></a></span><span>
</span><span id="line-269"></span><span>
</span><span id="line-270"></span><span class="hs-comment">-- | Style for printing error messages</span><span>
</span><span id="line-271"></span><span class="annot"><a href="GHC.Utils.Outputable.html#mkErrStyle"><span class="hs-identifier hs-type">mkErrStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-272"></span><span id="mkErrStyle"><span class="annot"><span class="annottext">mkErrStyle :: PrintUnqualified -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkErrStyle"><span class="hs-identifier hs-var hs-var">mkErrStyle</span></a></span></span><span> </span><span id="local-6989586621680789580"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789580"><span class="hs-identifier hs-var">unqual</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkUserStyle"><span class="hs-identifier hs-var">mkUserStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789580"><span class="hs-identifier hs-var">unqual</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="GHC.Utils.Outputable.html#DefaultDepth"><span class="hs-identifier hs-var">DefaultDepth</span></a></span><span>
</span><span id="line-273"></span><span>
</span><span id="line-274"></span><span class="annot"><a href="GHC.Utils.Outputable.html#cmdlineParserStyle"><span class="hs-identifier hs-type">cmdlineParserStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-275"></span><span id="cmdlineParserStyle"><span class="annot"><span class="annottext">cmdlineParserStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#cmdlineParserStyle"><span class="hs-identifier hs-var hs-var">cmdlineParserStyle</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkUserStyle"><span class="hs-identifier hs-var">mkUserStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#alwaysQualify"><span class="hs-identifier hs-var">alwaysQualify</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="GHC.Utils.Outputable.html#AllTheWay"><span class="hs-identifier hs-var">AllTheWay</span></a></span><span>
</span><span id="line-276"></span><span>
</span><span id="line-277"></span><span class="annot"><a href="GHC.Utils.Outputable.html#mkUserStyle"><span class="hs-identifier hs-type">mkUserStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Depth"><span class="hs-identifier hs-type">Depth</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-278"></span><span id="mkUserStyle"><span class="annot"><span class="annottext">mkUserStyle :: PrintUnqualified -&gt; Depth -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkUserStyle"><span class="hs-identifier hs-var hs-var">mkUserStyle</span></a></span></span><span> </span><span id="local-6989586621680789579"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789579"><span class="hs-identifier hs-var">unqual</span></a></span></span><span> </span><span id="local-6989586621680789578"><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789578"><span class="hs-identifier hs-var">depth</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; Coloured -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-var">PprUser</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789579"><span class="hs-identifier hs-var">unqual</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789578"><span class="hs-identifier hs-var">depth</span></a></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="GHC.Utils.Outputable.html#Uncoloured"><span class="hs-identifier hs-var">Uncoloured</span></a></span><span>
</span><span id="line-279"></span><span>
</span><span id="line-280"></span><span class="annot"><a href="GHC.Utils.Outputable.html#withUserStyle"><span class="hs-identifier hs-type">withUserStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Depth"><span class="hs-identifier hs-type">Depth</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-281"></span><span id="withUserStyle"><span class="annot"><span class="annottext">withUserStyle :: PrintUnqualified -&gt; Depth -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#withUserStyle"><span class="hs-identifier hs-var hs-var">withUserStyle</span></a></span></span><span> </span><span id="local-6989586621680789577"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789577"><span class="hs-identifier hs-var">unqual</span></a></span></span><span> </span><span id="local-6989586621680789576"><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789576"><span class="hs-identifier hs-var">depth</span></a></span></span><span> </span><span id="local-6989586621680789575"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789575"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PprStyle -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#withPprStyle"><span class="hs-identifier hs-var">withPprStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; Coloured -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-var">PprUser</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789577"><span class="hs-identifier hs-var">unqual</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789576"><span class="hs-identifier hs-var">depth</span></a></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="GHC.Utils.Outputable.html#Uncoloured"><span class="hs-identifier hs-var">Uncoloured</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789575"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-282"></span><span>
</span><span id="line-283"></span><span class="annot"><a href="GHC.Utils.Outputable.html#withErrStyle"><span class="hs-identifier hs-type">withErrStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-284"></span><span id="withErrStyle"><span class="annot"><span class="annottext">withErrStyle :: PrintUnqualified -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#withErrStyle"><span class="hs-identifier hs-var hs-var">withErrStyle</span></a></span></span><span> </span><span id="local-6989586621680789574"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789574"><span class="hs-identifier hs-var">unqual</span></a></span></span><span> </span><span id="local-6989586621680789573"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789573"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-285"></span><span>   </span><span class="annot"><span class="annottext">PprStyle -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#withPprStyle"><span class="hs-identifier hs-var">withPprStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PrintUnqualified -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkErrStyle"><span class="hs-identifier hs-var">mkErrStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789574"><span class="hs-identifier hs-var">unqual</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789573"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-286"></span><span>
</span><span id="line-287"></span><span class="annot"><a href="GHC.Utils.Outputable.html#setStyleColoured"><span class="hs-identifier hs-type">setStyleColoured</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-288"></span><span id="setStyleColoured"><span class="annot"><span class="annottext">setStyleColoured :: Bool -&gt; PprStyle -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#setStyleColoured"><span class="hs-identifier hs-var hs-var">setStyleColoured</span></a></span></span><span> </span><span id="local-6989586621680789572"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789572"><span class="hs-identifier hs-var">col</span></a></span></span><span> </span><span id="local-6989586621680789571"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789571"><span class="hs-identifier hs-var">style</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-289"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789571"><span class="hs-identifier hs-var">style</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-290"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span id="local-6989586621680789570"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789570"><span class="hs-identifier hs-var">q</span></a></span></span><span> </span><span id="local-6989586621680789569"><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789569"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; Coloured -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-var">PprUser</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789570"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789569"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="#local-6989586621680789568"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-291"></span><span>    </span><span class="annot"><span class="annottext">PprStyle
</span><span class="hs-identifier">_</span></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789571"><span class="hs-identifier hs-var">style</span></a></span><span>
</span><span id="line-292"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-293"></span><span>    </span><span id="local-6989586621680789568"><span class="annot"><span class="annottext">c :: Coloured
</span><a href="#local-6989586621680789568"><span class="hs-identifier hs-var hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789572"><span class="hs-identifier hs-var">col</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="GHC.Utils.Outputable.html#Coloured"><span class="hs-identifier hs-var">Coloured</span></a></span><span>
</span><span id="line-294"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="GHC.Utils.Outputable.html#Uncoloured"><span class="hs-identifier hs-var">Uncoloured</span></a></span><span>
</span><span id="line-295"></span><span>
</span><span id="line-296"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789565"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-297"></span><span>  </span><span id="local-6989586621680789564"><span class="annot"><span class="annottext">ppr :: PprStyle -&gt; SDoc
</span><a href="#local-6989586621680789564"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;user-style&quot;</span></span><span>
</span><span id="line-298"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprCode"><span class="hs-identifier hs-type">PprCode</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;code-style&quot;</span></span><span>
</span><span id="line-299"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprDump"><span class="hs-identifier hs-type">PprDump</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;dump-style&quot;</span></span><span>
</span><span id="line-300"></span><span>
</span><span id="line-301"></span><span class="hs-comment">{-
Orthogonal to the above printing styles are (possibly) some
command-line flags that affect printing (often carried with the
style).  The most likely ones are variations on how much type info is
shown.

The following test decides whether or not we are actually generating
code (either C or assembly), or generating interface files.

************************************************************************
*                                                                      *
\subsection{The @SDoc@ data type}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-316"></span><span>
</span><span id="line-317"></span><span class="hs-comment">-- | Represents a pretty-printable document.</span><span>
</span><span id="line-318"></span><span class="hs-comment">--</span><span>
</span><span id="line-319"></span><span class="hs-comment">-- To display an 'SDoc', use 'printSDoc', 'printSDocLn', 'bufLeftRenderSDoc',</span><span>
</span><span id="line-320"></span><span class="hs-comment">-- or 'renderWithStyle'.  Avoid calling 'runSDoc' directly as it breaks the</span><span>
</span><span id="line-321"></span><span class="hs-comment">-- abstraction layer.</span><span>
</span><span id="line-322"></span><span class="hs-keyword">newtype</span><span> </span><span id="SDoc"><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="SDoc"><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="runSDoc"><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-323"></span><span>
</span><span id="line-324"></span><span class="hs-keyword">data</span><span> </span><span id="SDocContext"><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-var">SDocContext</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="SDC"><span class="annot"><a href="GHC.Utils.Outputable.html#SDC"><span class="hs-identifier hs-var">SDC</span></a></span></span><span>
</span><span id="line-325"></span><span>  </span><span class="hs-special">{</span><span> </span><span id="sdocStyle"><span class="annot"><span class="annottext">SDocContext -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var hs-var">sdocStyle</span></a></span></span><span>                       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-326"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocColScheme"><span class="annot"><span class="annottext">SDocContext -&gt; Scheme
</span><a href="GHC.Utils.Outputable.html#sdocColScheme"><span class="hs-identifier hs-var hs-var">sdocColScheme</span></a></span></span><span>                   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Utils.Ppr.Colour.html#Scheme"><span class="hs-identifier hs-type">Col.Scheme</span></a></span><span>
</span><span id="line-327"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocLastColour"><span class="annot"><span class="annottext">SDocContext -&gt; PprColour
</span><a href="GHC.Utils.Outputable.html#sdocLastColour"><span class="hs-identifier hs-var hs-var">sdocLastColour</span></a></span></span><span>                  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Utils.Ppr.Colour.html#PprColour"><span class="hs-identifier hs-type">Col.PprColour</span></a></span><span>
</span><span id="line-328"></span><span>      </span><span class="hs-comment">-- ^ The most recently used colour.</span><span>
</span><span id="line-329"></span><span>      </span><span class="hs-comment">-- This allows nesting colours.</span><span>
</span><span id="line-330"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocShouldUseColor"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocShouldUseColor"><span class="hs-identifier hs-var hs-var">sdocShouldUseColor</span></a></span></span><span>              </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-331"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocDefaultDepth"><span class="annot"><span class="annottext">SDocContext -&gt; Int
</span><a href="GHC.Utils.Outputable.html#sdocDefaultDepth"><span class="hs-identifier hs-var hs-var">sdocDefaultDepth</span></a></span></span><span>                </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-332"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocLineLength"><span class="annot"><span class="annottext">SDocContext -&gt; Int
</span><a href="GHC.Utils.Outputable.html#sdocLineLength"><span class="hs-identifier hs-var hs-var">sdocLineLength</span></a></span></span><span>                  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-333"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocCanUseUnicode"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocCanUseUnicode"><span class="hs-identifier hs-var hs-var">sdocCanUseUnicode</span></a></span></span><span>               </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-334"></span><span>      </span><span class="hs-comment">-- ^ True if Unicode encoding is supported</span><span>
</span><span id="line-335"></span><span>      </span><span class="hs-comment">-- and not disable by GHC_NO_UNICODE environment variable</span><span>
</span><span id="line-336"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocHexWordLiterals"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocHexWordLiterals"><span class="hs-identifier hs-var hs-var">sdocHexWordLiterals</span></a></span></span><span>             </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-337"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPprDebug"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPprDebug"><span class="hs-identifier hs-var hs-var">sdocPprDebug</span></a></span></span><span>                    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-338"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintUnicodeSyntax"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintUnicodeSyntax"><span class="hs-identifier hs-var hs-var">sdocPrintUnicodeSyntax</span></a></span></span><span>          </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-339"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintCaseAsLet"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintCaseAsLet"><span class="hs-identifier hs-var hs-var">sdocPrintCaseAsLet</span></a></span></span><span>              </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-340"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintTypecheckerElaboration"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintTypecheckerElaboration"><span class="hs-identifier hs-var hs-var">sdocPrintTypecheckerElaboration</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-341"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintAxiomIncomps"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintAxiomIncomps"><span class="hs-identifier hs-var hs-var">sdocPrintAxiomIncomps</span></a></span></span><span>           </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-342"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintExplicitKinds"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintExplicitKinds"><span class="hs-identifier hs-var hs-var">sdocPrintExplicitKinds</span></a></span></span><span>          </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-343"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintExplicitCoercions"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintExplicitCoercions"><span class="hs-identifier hs-var hs-var">sdocPrintExplicitCoercions</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-344"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintExplicitRuntimeReps"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintExplicitRuntimeReps"><span class="hs-identifier hs-var hs-var">sdocPrintExplicitRuntimeReps</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-345"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintExplicitForalls"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintExplicitForalls"><span class="hs-identifier hs-var hs-var">sdocPrintExplicitForalls</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-346"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintPotentialInstances"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintPotentialInstances"><span class="hs-identifier hs-var hs-var">sdocPrintPotentialInstances</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-347"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintEqualityRelations"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintEqualityRelations"><span class="hs-identifier hs-var hs-var">sdocPrintEqualityRelations</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-348"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressTicks"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTicks"><span class="hs-identifier hs-var hs-var">sdocSuppressTicks</span></a></span></span><span>               </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-349"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressTypeSignatures"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTypeSignatures"><span class="hs-identifier hs-var hs-var">sdocSuppressTypeSignatures</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-350"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressTypeApplications"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTypeApplications"><span class="hs-identifier hs-var hs-var">sdocSuppressTypeApplications</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-351"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressIdInfo"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressIdInfo"><span class="hs-identifier hs-var hs-var">sdocSuppressIdInfo</span></a></span></span><span>              </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-352"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressCoercions"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressCoercions"><span class="hs-identifier hs-var hs-var">sdocSuppressCoercions</span></a></span></span><span>           </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-353"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressUnfoldings"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressUnfoldings"><span class="hs-identifier hs-var hs-var">sdocSuppressUnfoldings</span></a></span></span><span>          </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-354"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressVarKinds"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressVarKinds"><span class="hs-identifier hs-var hs-var">sdocSuppressVarKinds</span></a></span></span><span>            </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-355"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressUniques"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressUniques"><span class="hs-identifier hs-var hs-var">sdocSuppressUniques</span></a></span></span><span>             </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-356"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressModulePrefixes"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressModulePrefixes"><span class="hs-identifier hs-var hs-var">sdocSuppressModulePrefixes</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-357"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocSuppressStgExts"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressStgExts"><span class="hs-identifier hs-var hs-var">sdocSuppressStgExts</span></a></span></span><span>             </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-358"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocErrorSpans"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocErrorSpans"><span class="hs-identifier hs-var hs-var">sdocErrorSpans</span></a></span></span><span>                  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-359"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocStarIsType"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocStarIsType"><span class="hs-identifier hs-var hs-var">sdocStarIsType</span></a></span></span><span>                  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-360"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocLinearTypes"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocLinearTypes"><span class="hs-identifier hs-var hs-var">sdocLinearTypes</span></a></span></span><span>                 </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-361"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocImpredicativeTypes"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocImpredicativeTypes"><span class="hs-identifier hs-var hs-var">sdocImpredicativeTypes</span></a></span></span><span>          </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-362"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocPrintTypeAbbreviations"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintTypeAbbreviations"><span class="hs-identifier hs-var hs-var">sdocPrintTypeAbbreviations</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-363"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="sdocDynFlags"><span class="annot"><span class="annottext">SDocContext -&gt; DynFlags
</span><a href="GHC.Utils.Outputable.html#sdocDynFlags"><span class="hs-identifier hs-var hs-var">sdocDynFlags</span></a></span></span><span>                    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-comment">-- TODO: remove</span><span>
</span><span id="line-364"></span><span>  </span><span class="hs-special">}</span><span>
</span><span id="line-365"></span><span>
</span><span id="line-366"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../../base/src/Data.String.html#IsString"><span class="hs-identifier hs-type">IsString</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-367"></span><span>  </span><span id="local-6989586621680789523"><span class="annot"><span class="annottext">fromString :: String -&gt; SDoc
</span><a href="../../base/src/Data.String.html#fromString"><span class="hs-identifier hs-var hs-var hs-var hs-var">fromString</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span>
</span><span id="line-368"></span><span>
</span><span id="line-369"></span><span class="hs-comment">-- The lazy programmer's friend.</span><span>
</span><span id="line-370"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789520"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-371"></span><span>  </span><span id="local-6989586621680789519"><span class="annot"><span class="annottext">ppr :: SDoc -&gt; SDoc
</span><a href="#local-6989586621680789519"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span>
</span><span id="line-372"></span><span>
</span><span id="line-373"></span><span>
</span><span id="line-374"></span><span class="annot"><a href="GHC.Utils.Outputable.html#withPprStyle"><span class="hs-identifier hs-type">withPprStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-375"></span><span id="withPprStyle"><span class="annot"><span class="annottext">withPprStyle :: PprStyle -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#withPprStyle"><span class="hs-identifier hs-var hs-var">withPprStyle</span></a></span></span><span> </span><span id="local-6989586621680789517"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789517"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span id="local-6989586621680789516"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789516"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789515"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789515"><span class="hs-identifier hs-var">ctxt</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789516"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789515"><span class="hs-identifier hs-var">ctxt</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">sdocStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var">sdocStyle</span></a></span><span class="hs-glyph">=</span><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789517"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-376"></span><span>
</span><span id="line-377"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprDeeper"><span class="hs-identifier hs-type">pprDeeper</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-378"></span><span id="pprDeeper"><span class="annot"><span class="annottext">pprDeeper :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprDeeper"><span class="hs-identifier hs-var hs-var">pprDeeper</span></a></span></span><span> </span><span id="local-6989586621680789514"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789514"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789513"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789513"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var hs-var">sdocStyle</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789513"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-379"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span id="local-6989586621680789512"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789512"><span class="hs-identifier hs-var">q</span></a></span></span><span> </span><span id="local-6989586621680789511"><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789511"><span class="hs-identifier hs-var">depth</span></a></span></span><span> </span><span id="local-6989586621680789510"><span class="annot"><span class="annottext">Coloured
</span><a href="#local-6989586621680789510"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-380"></span><span>   </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680789505"><span class="annot"><span class="annottext">deeper :: Int -&gt; Doc
</span><a href="#local-6989586621680789505"><span class="hs-identifier hs-var hs-var">deeper</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;...&quot;</span></span><span>
</span><span id="line-381"></span><span>       </span><span class="annot"><a href="#local-6989586621680789505"><span class="hs-identifier hs-var">deeper</span></a></span><span> </span><span id="local-6989586621680789503"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789503"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789514"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789513"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">sdocStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var">sdocStyle</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; Coloured -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-var">PprUser</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789512"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Depth
</span><a href="GHC.Utils.Outputable.html#PartWay"><span class="hs-identifier hs-var">PartWay</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789503"><span class="hs-identifier hs-var">n</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="#local-6989586621680789510"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-382"></span><span>   </span><span class="hs-keyword">in</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789511"><span class="hs-identifier hs-var">depth</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-383"></span><span>         </span><span class="annot"><span class="annottext">Depth
</span><a href="GHC.Utils.Outputable.html#DefaultDepth"><span class="hs-identifier hs-var">DefaultDepth</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Doc
</span><a href="#local-6989586621680789505"><span class="hs-identifier hs-var">deeper</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; Int
</span><a href="GHC.Utils.Outputable.html#sdocDefaultDepth"><span class="hs-identifier hs-var hs-var">sdocDefaultDepth</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789513"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-384"></span><span>         </span><span class="annot"><a href="GHC.Utils.Outputable.html#PartWay"><span class="hs-identifier hs-type">PartWay</span></a></span><span> </span><span id="local-6989586621680789502"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789502"><span class="hs-identifier hs-var">n</span></a></span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Doc
</span><a href="#local-6989586621680789505"><span class="hs-identifier hs-var">deeper</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789502"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-385"></span><span>         </span><span class="annot"><span class="annottext">Depth
</span><a href="GHC.Utils.Outputable.html#AllTheWay"><span class="hs-identifier hs-var">AllTheWay</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789514"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789513"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-386"></span><span>  </span><span class="annot"><span class="annottext">PprStyle
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789514"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789513"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-387"></span><span>
</span><span id="line-388"></span><span>
</span><span id="line-389"></span><span class="hs-comment">-- | Truncate a list that is longer than the current depth.</span><span>
</span><span id="line-390"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprDeeperList"><span class="hs-identifier hs-type">pprDeeperList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-391"></span><span id="pprDeeperList"><span class="annot"><span class="annottext">pprDeeperList :: ([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprDeeperList"><span class="hs-identifier hs-var hs-var">pprDeeperList</span></a></span></span><span> </span><span id="local-6989586621680789501"><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="#local-6989586621680789501"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680789500"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789500"><span class="hs-identifier hs-var">ds</span></a></span></span><span>
</span><span id="line-392"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789500"><span class="hs-identifier hs-var">ds</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="#local-6989586621680789501"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-393"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Doc
</span><a href="#local-6989586621680789498"><span class="hs-identifier hs-var">work</span></a></span><span>
</span><span id="line-394"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-395"></span><span>  </span><span id="local-6989586621680789498"><span class="annot"><span class="annottext">work :: SDocContext -&gt; Doc
</span><a href="#local-6989586621680789498"><span class="hs-identifier hs-var hs-var">work</span></a></span></span><span> </span><span id="local-6989586621680789493"><span class="annot"><span class="annottext">ctx :: SDocContext
</span><a href="#local-6989586621680789493"><span class="hs-identifier hs-var">ctx</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDC"><span class="hs-identifier hs-type">SDC</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">sdocStyle :: SDocContext -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var">sdocStyle</span></a></span><span class="hs-glyph">=</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span id="local-6989586621680789492"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789492"><span class="hs-identifier hs-var">q</span></a></span></span><span> </span><span id="local-6989586621680789491"><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789491"><span class="hs-identifier hs-var">depth</span></a></span></span><span> </span><span id="local-6989586621680789490"><span class="annot"><span class="annottext">Coloured
</span><a href="#local-6989586621680789490"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">}</span><span>
</span><span id="line-396"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="GHC.Utils.Outputable.html#DefaultDepth"><span class="hs-identifier hs-var">DefaultDepth</span></a></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789491"><span class="hs-identifier hs-var">depth</span></a></span><span>
</span><span id="line-397"></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Doc
</span><a href="#local-6989586621680789498"><span class="hs-identifier hs-var">work</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789493"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">sdocStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var">sdocStyle</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; Coloured -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-var">PprUser</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789492"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Depth
</span><a href="GHC.Utils.Outputable.html#PartWay"><span class="hs-identifier hs-var">PartWay</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; Int
</span><a href="GHC.Utils.Outputable.html#sdocDefaultDepth"><span class="hs-identifier hs-var hs-var">sdocDefaultDepth</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789493"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="#local-6989586621680789490"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-398"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PartWay"><span class="hs-identifier hs-type">PartWay</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789491"><span class="hs-identifier hs-var">depth</span></a></span><span>
</span><span id="line-399"></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;...&quot;</span></span><span>
</span><span id="line-400"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PartWay"><span class="hs-identifier hs-type">PartWay</span></a></span><span> </span><span id="local-6989586621680789489"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789489"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789491"><span class="hs-identifier hs-var">depth</span></a></span><span>
</span><span id="line-401"></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span>
</span><span id="line-402"></span><span>        </span><span id="local-6989586621680789484"><span class="annot"><span class="annottext">go :: Int -&gt; [SDoc] -&gt; [SDoc]
</span><a href="#local-6989586621680789484"><span class="hs-identifier hs-var hs-var">go</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-403"></span><span>        </span><span class="annot"><a href="#local-6989586621680789484"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span id="local-6989586621680789483"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789483"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789482"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789482"><span class="hs-identifier hs-var">d</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680789481"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789481"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789483"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789489"><span class="hs-identifier hs-var">n</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;....&quot;</span></span><span class="hs-special">]</span><span>
</span><span id="line-404"></span><span>                    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789482"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">Int -&gt; [SDoc] -&gt; [SDoc]
</span><a href="#local-6989586621680789484"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789483"><span class="hs-identifier hs-var">i</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789481"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-405"></span><span>     </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="#local-6989586621680789501"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; [SDoc] -&gt; [SDoc]
</span><a href="#local-6989586621680789484"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789500"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789493"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">sdocStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var">sdocStyle</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; Coloured -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-var">PprUser</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789492"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Depth
</span><a href="GHC.Utils.Outputable.html#PartWay"><span class="hs-identifier hs-var">PartWay</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789489"><span class="hs-identifier hs-var">n</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="#local-6989586621680789490"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-406"></span><span>  </span><span class="annot"><a href="#local-6989586621680789498"><span class="hs-identifier hs-var">work</span></a></span><span> </span><span id="local-6989586621680789479"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789479"><span class="hs-identifier hs-var">other_ctx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="#local-6989586621680789501"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789500"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789479"><span class="hs-identifier hs-var">other_ctx</span></a></span><span>
</span><span id="line-407"></span><span>
</span><span id="line-408"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprSetDepth"><span class="hs-identifier hs-type">pprSetDepth</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Depth"><span class="hs-identifier hs-type">Depth</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-409"></span><span id="pprSetDepth"><span class="annot"><span class="annottext">pprSetDepth :: Depth -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprSetDepth"><span class="hs-identifier hs-var hs-var">pprSetDepth</span></a></span></span><span> </span><span id="local-6989586621680789478"><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789478"><span class="hs-identifier hs-var">depth</span></a></span></span><span> </span><span id="local-6989586621680789477"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789477"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789476"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789476"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-410"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789476"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-411"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDC"><span class="hs-identifier hs-type">SDC</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">sdocStyle :: SDocContext -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var">sdocStyle</span></a></span><span class="hs-glyph">=</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span id="local-6989586621680789475"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789475"><span class="hs-identifier hs-var">q</span></a></span></span><span> </span><span class="annot"><span class="annottext">Depth
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680789474"><span class="annot"><span class="annottext">Coloured
</span><a href="#local-6989586621680789474"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-412"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789477"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789476"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">sdocStyle :: PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var">sdocStyle</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; Coloured -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-var">PprUser</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789475"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789478"><span class="hs-identifier hs-var">depth</span></a></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="#local-6989586621680789474"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-413"></span><span>        </span><span class="annot"><span class="annottext">SDocContext
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-414"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789477"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789476"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-415"></span><span>
</span><span id="line-416"></span><span class="annot"><a href="GHC.Utils.Outputable.html#getPprStyle"><span class="hs-identifier hs-type">getPprStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-417"></span><span id="getPprStyle"><span class="annot"><span class="annottext">getPprStyle :: (PprStyle -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#getPprStyle"><span class="hs-identifier hs-var hs-var">getPprStyle</span></a></span></span><span> </span><span id="local-6989586621680789473"><span class="annot"><span class="annottext">PprStyle -&gt; SDoc
</span><a href="#local-6989586621680789473"><span class="hs-identifier hs-var">df</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789472"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789472"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprStyle -&gt; SDoc
</span><a href="#local-6989586621680789473"><span class="hs-identifier hs-var">df</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var hs-var">sdocStyle</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789472"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789472"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-418"></span><span>
</span><span id="line-419"></span><span class="annot"><a href="GHC.Utils.Outputable.html#sdocWithDynFlags"><span class="hs-identifier hs-type">sdocWithDynFlags</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-420"></span><span id="sdocWithDynFlags"><span class="annot"><span class="annottext">sdocWithDynFlags :: (DynFlags -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithDynFlags"><span class="hs-identifier hs-var hs-var">sdocWithDynFlags</span></a></span></span><span> </span><span id="local-6989586621680789471"><span class="annot"><span class="annottext">DynFlags -&gt; SDoc
</span><a href="#local-6989586621680789471"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789470"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789470"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; SDoc
</span><a href="#local-6989586621680789471"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; DynFlags
</span><a href="GHC.Utils.Outputable.html#sdocDynFlags"><span class="hs-identifier hs-var hs-var">sdocDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789470"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789470"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-421"></span><span>
</span><span id="line-422"></span><span class="annot"><a href="GHC.Utils.Outputable.html#sdocWithContext"><span class="hs-identifier hs-type">sdocWithContext</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-423"></span><span id="sdocWithContext"><span class="annot"><span class="annottext">sdocWithContext :: (SDocContext -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithContext"><span class="hs-identifier hs-var hs-var">sdocWithContext</span></a></span></span><span> </span><span id="local-6989586621680789469"><span class="annot"><span class="annottext">SDocContext -&gt; SDoc
</span><a href="#local-6989586621680789469"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789468"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789468"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; SDoc
</span><a href="#local-6989586621680789469"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789468"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789468"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-424"></span><span>
</span><span id="line-425"></span><span id="local-6989586621680790101"><span class="annot"><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-type">sdocOption</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680790101"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680790101"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-426"></span><span id="sdocOption"><span class="annot"><span class="annottext">sdocOption :: forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var hs-var">sdocOption</span></a></span></span><span> </span><span id="local-6989586621680789467"><span class="annot"><span class="annottext">SDocContext -&gt; a
</span><a href="#local-6989586621680789467"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680789466"><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680789466"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithContext"><span class="hs-identifier hs-var">sdocWithContext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680789466"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; (SDocContext -&gt; a) -&gt; SDocContext -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; a
</span><a href="#local-6989586621680789467"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-427"></span><span>
</span><span id="line-428"></span><span class="annot"><a href="GHC.Utils.Outputable.html#updSDocContext"><span class="hs-identifier hs-type">updSDocContext</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-429"></span><span id="updSDocContext"><span class="annot"><span class="annottext">updSDocContext :: (SDocContext -&gt; SDocContext) -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#updSDocContext"><span class="hs-identifier hs-var hs-var">updSDocContext</span></a></span></span><span> </span><span id="local-6989586621680789464"><span class="annot"><span class="annottext">SDocContext -&gt; SDocContext
</span><a href="#local-6989586621680789464"><span class="hs-identifier hs-var">upd</span></a></span></span><span> </span><span id="local-6989586621680789463"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789463"><span class="hs-identifier hs-var">doc</span></a></span></span><span>
</span><span id="line-430"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789462"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789462"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789463"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; SDocContext
</span><a href="#local-6989586621680789464"><span class="hs-identifier hs-var">upd</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789462"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-431"></span><span>
</span><span id="line-432"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualName"><span class="hs-identifier hs-type">qualName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyName"><span class="hs-identifier hs-type">QueryQualifyName</span></a></span><span>
</span><span id="line-433"></span><span id="qualName"><span class="annot"><span class="annottext">qualName :: PprStyle -&gt; QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#qualName"><span class="hs-identifier hs-var hs-var">qualName</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span id="local-6989586621680789461"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789461"><span class="hs-identifier hs-var">q</span></a></span></span><span> </span><span class="annot"><span class="annottext">Depth
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680789460"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789460"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span id="local-6989586621680789459"><span class="annot"><span class="annottext">OccName
</span><a href="#local-6989586621680789459"><span class="hs-identifier hs-var">occ</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#queryQualifyName"><span class="hs-identifier hs-var hs-var">queryQualifyName</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789461"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789460"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="annot"><span class="annottext">OccName
</span><a href="#local-6989586621680789459"><span class="hs-identifier hs-var">occ</span></a></span><span>
</span><span id="line-434"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualName"><span class="hs-identifier hs-var">qualName</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprDump"><span class="hs-identifier hs-type">PprDump</span></a></span><span> </span><span id="local-6989586621680789458"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789458"><span class="hs-identifier hs-var">q</span></a></span></span><span class="hs-special">)</span><span>     </span><span id="local-6989586621680789457"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789457"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span id="local-6989586621680789456"><span class="annot"><span class="annottext">OccName
</span><a href="#local-6989586621680789456"><span class="hs-identifier hs-var">occ</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#queryQualifyName"><span class="hs-identifier hs-var hs-var">queryQualifyName</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789458"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789457"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="annot"><span class="annottext">OccName
</span><a href="#local-6989586621680789456"><span class="hs-identifier hs-var">occ</span></a></span><span>
</span><span id="line-435"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualName"><span class="hs-identifier hs-var">qualName</span></a></span><span> </span><span id="local-6989586621680789455"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789455"><span class="hs-identifier hs-var">_other</span></a></span></span><span>          </span><span id="local-6989586621680789454"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789454"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span class="annot"><span class="annottext">OccName
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; QualifyName
</span><a href="GHC.Utils.Outputable.html#NameQual"><span class="hs-identifier hs-var">NameQual</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; ModuleName
forall a. GenModule a -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789454"><span class="hs-identifier hs-var">mod</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-436"></span><span>
</span><span id="line-437"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualModule"><span class="hs-identifier hs-type">qualModule</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyModule"><span class="hs-identifier hs-type">QueryQualifyModule</span></a></span><span>
</span><span id="line-438"></span><span id="qualModule"><span class="annot"><span class="annottext">qualModule :: PprStyle -&gt; QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#qualModule"><span class="hs-identifier hs-var hs-var">qualModule</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span id="local-6989586621680789453"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789453"><span class="hs-identifier hs-var">q</span></a></span></span><span> </span><span class="annot"><span class="annottext">Depth
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>  </span><span id="local-6989586621680789452"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789452"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#queryQualifyModule"><span class="hs-identifier hs-var hs-var">queryQualifyModule</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789453"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789452"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-439"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualModule"><span class="hs-identifier hs-var">qualModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprDump"><span class="hs-identifier hs-type">PprDump</span></a></span><span> </span><span id="local-6989586621680789451"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789451"><span class="hs-identifier hs-var">q</span></a></span></span><span class="hs-special">)</span><span>      </span><span id="local-6989586621680789450"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789450"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#queryQualifyModule"><span class="hs-identifier hs-var hs-var">queryQualifyModule</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789451"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789450"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-440"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualModule"><span class="hs-identifier hs-var">qualModule</span></a></span><span> </span><span id="local-6989586621680789449"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789449"><span class="hs-identifier hs-var">_other</span></a></span></span><span>          </span><span id="local-6989586621680789448"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680789448"><span class="hs-identifier hs-var">_m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-441"></span><span>
</span><span id="line-442"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualPackage"><span class="hs-identifier hs-type">qualPackage</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#QueryQualifyPackage"><span class="hs-identifier hs-type">QueryQualifyPackage</span></a></span><span>
</span><span id="line-443"></span><span id="qualPackage"><span class="annot"><span class="annottext">qualPackage :: PprStyle -&gt; QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#qualPackage"><span class="hs-identifier hs-var hs-var">qualPackage</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span id="local-6989586621680789447"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789447"><span class="hs-identifier hs-var">q</span></a></span></span><span> </span><span class="annot"><span class="annottext">Depth
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>  </span><span id="local-6989586621680789446"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680789446"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#queryQualifyPackage"><span class="hs-identifier hs-var hs-var">queryQualifyPackage</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789447"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680789446"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-444"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualPackage"><span class="hs-identifier hs-var">qualPackage</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprDump"><span class="hs-identifier hs-type">PprDump</span></a></span><span> </span><span id="local-6989586621680789445"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789445"><span class="hs-identifier hs-var">q</span></a></span></span><span class="hs-special">)</span><span>      </span><span id="local-6989586621680789444"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680789444"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PrintUnqualified -&gt; QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#queryQualifyPackage"><span class="hs-identifier hs-var hs-var">queryQualifyPackage</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789445"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680789444"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-445"></span><span class="annot"><a href="GHC.Utils.Outputable.html#qualPackage"><span class="hs-identifier hs-var">qualPackage</span></a></span><span> </span><span id="local-6989586621680789443"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789443"><span class="hs-identifier hs-var">_other</span></a></span></span><span>          </span><span id="local-6989586621680789442"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680789442"><span class="hs-identifier hs-var">_m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-446"></span><span>
</span><span id="line-447"></span><span class="annot"><a href="GHC.Utils.Outputable.html#queryQual"><span class="hs-identifier hs-type">queryQual</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span>
</span><span id="line-448"></span><span id="queryQual"><span class="annot"><span class="annottext">queryQual :: PprStyle -&gt; PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#queryQual"><span class="hs-identifier hs-var hs-var">queryQual</span></a></span></span><span> </span><span id="local-6989586621680789441"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789441"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">QueryQualifyName
-&gt; QueryQualifyModule -&gt; QueryQualifyPackage -&gt; PrintUnqualified
</span><a href="GHC.Utils.Outputable.html#QueryQualify"><span class="hs-identifier hs-var">QueryQualify</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprStyle -&gt; QueryQualifyName
</span><a href="GHC.Utils.Outputable.html#qualName"><span class="hs-identifier hs-var">qualName</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789441"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-449"></span><span>                           </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprStyle -&gt; QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#qualModule"><span class="hs-identifier hs-var">qualModule</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789441"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-450"></span><span>                           </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprStyle -&gt; QueryQualifyPackage
</span><a href="GHC.Utils.Outputable.html#qualPackage"><span class="hs-identifier hs-var">qualPackage</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789441"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-451"></span><span>
</span><span id="line-452"></span><span class="annot"><a href="GHC.Utils.Outputable.html#codeStyle"><span class="hs-identifier hs-type">codeStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-453"></span><span id="codeStyle"><span class="annot"><span class="annottext">codeStyle :: PprStyle -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#codeStyle"><span class="hs-identifier hs-var hs-var">codeStyle</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprCode"><span class="hs-identifier hs-type">PprCode</span></a></span><span> </span><span class="annot"><span class="annottext">CodeStyle
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-454"></span><span class="annot"><a href="GHC.Utils.Outputable.html#codeStyle"><span class="hs-identifier hs-var">codeStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><span class="hs-identifier">_</span></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-455"></span><span>
</span><span id="line-456"></span><span class="annot"><a href="GHC.Utils.Outputable.html#asmStyle"><span class="hs-identifier hs-type">asmStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-457"></span><span id="asmStyle"><span class="annot"><span class="annottext">asmStyle :: PprStyle -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#asmStyle"><span class="hs-identifier hs-var hs-var">asmStyle</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprCode"><span class="hs-identifier hs-type">PprCode</span></a></span><span> </span><span class="annot"><span class="annottext">CodeStyle
</span><a href="GHC.Utils.Outputable.html#AsmStyle"><span class="hs-identifier hs-var">AsmStyle</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-458"></span><span class="annot"><a href="GHC.Utils.Outputable.html#asmStyle"><span class="hs-identifier hs-var">asmStyle</span></a></span><span> </span><span id="local-6989586621680789440"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789440"><span class="hs-identifier hs-var">_other</span></a></span></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-459"></span><span>
</span><span id="line-460"></span><span class="annot"><a href="GHC.Utils.Outputable.html#dumpStyle"><span class="hs-identifier hs-type">dumpStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-461"></span><span id="dumpStyle"><span class="annot"><span class="annottext">dumpStyle :: PprStyle -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#dumpStyle"><span class="hs-identifier hs-var hs-var">dumpStyle</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprDump"><span class="hs-identifier hs-type">PprDump</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-462"></span><span class="annot"><a href="GHC.Utils.Outputable.html#dumpStyle"><span class="hs-identifier hs-var">dumpStyle</span></a></span><span> </span><span id="local-6989586621680789439"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789439"><span class="hs-identifier hs-var">_other</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-463"></span><span>
</span><span id="line-464"></span><span class="annot"><a href="GHC.Utils.Outputable.html#userStyle"><span class="hs-identifier hs-type">userStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-465"></span><span id="userStyle"><span class="annot"><span class="annottext">userStyle :: PprStyle -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#userStyle"><span class="hs-identifier hs-var hs-var">userStyle</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-466"></span><span class="annot"><a href="GHC.Utils.Outputable.html#userStyle"><span class="hs-identifier hs-var">userStyle</span></a></span><span> </span><span id="local-6989586621680789438"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680789438"><span class="hs-identifier hs-var">_other</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-467"></span><span>
</span><span id="line-468"></span><span class="hs-comment">-- | Indicate if -dppr-debug mode is enabled</span><span>
</span><span id="line-469"></span><span class="annot"><a href="GHC.Utils.Outputable.html#getPprDebug"><span class="hs-identifier hs-type">getPprDebug</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-470"></span><span id="getPprDebug"><span class="annot"><span class="annottext">getPprDebug :: (Bool -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#getPprDebug"><span class="hs-identifier hs-var hs-var">getPprDebug</span></a></span></span><span> </span><span id="local-6989586621680789437"><span class="annot"><span class="annottext">Bool -&gt; SDoc
</span><a href="#local-6989586621680789437"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithContext"><span class="hs-identifier hs-var">sdocWithContext</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; SDoc) -&gt; SDoc) -&gt; (SDocContext -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789436"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789436"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
</span><a href="#local-6989586621680789437"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPprDebug"><span class="hs-identifier hs-var hs-var">sdocPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789436"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-471"></span><span>
</span><span id="line-472"></span><span class="hs-comment">-- | Says what to do with and without -dppr-debug</span><span>
</span><span id="line-473"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ifPprDebug"><span class="hs-identifier hs-type">ifPprDebug</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-474"></span><span id="ifPprDebug"><span class="annot"><span class="annottext">ifPprDebug :: SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ifPprDebug"><span class="hs-identifier hs-var hs-var">ifPprDebug</span></a></span></span><span> </span><span id="local-6989586621680789435"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789435"><span class="hs-identifier hs-var">yes</span></a></span></span><span> </span><span id="local-6989586621680789434"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789434"><span class="hs-identifier hs-var">no</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#getPprDebug"><span class="hs-identifier hs-var">getPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789433"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789433"><span class="hs-identifier hs-var">dbg</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789433"><span class="hs-identifier hs-var">dbg</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789435"><span class="hs-identifier hs-var">yes</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789434"><span class="hs-identifier hs-var">no</span></a></span><span>
</span><span id="line-475"></span><span>
</span><span id="line-476"></span><span class="hs-comment">-- | Says what to do with -dppr-debug; without, return empty</span><span>
</span><span id="line-477"></span><span class="annot"><a href="GHC.Utils.Outputable.html#whenPprDebug"><span class="hs-identifier hs-type">whenPprDebug</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>        </span><span class="hs-comment">-- Empty for non-debug style</span><span>
</span><span id="line-478"></span><span id="whenPprDebug"><span class="annot"><span class="annottext">whenPprDebug :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#whenPprDebug"><span class="hs-identifier hs-var hs-var">whenPprDebug</span></a></span></span><span> </span><span id="local-6989586621680789432"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789432"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ifPprDebug"><span class="hs-identifier hs-var">ifPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789432"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-479"></span><span>
</span><span id="line-480"></span><span class="hs-comment">-- | The analog of 'Pretty.printDoc_' for 'SDoc', which tries to make sure the</span><span>
</span><span id="line-481"></span><span class="hs-comment">--   terminal doesn't get screwed up by the ANSI color codes if an exception</span><span>
</span><span id="line-482"></span><span class="hs-comment">--   is thrown during pretty-printing.</span><span>
</span><span id="line-483"></span><span class="annot"><a href="GHC.Utils.Outputable.html#printSDoc"><span class="hs-identifier hs-type">printSDoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.html#Mode"><span class="hs-identifier hs-type">Mode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Types.html#Handle"><span class="hs-identifier hs-type">Handle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-484"></span><span id="printSDoc"><span class="annot"><span class="annottext">printSDoc :: SDocContext -&gt; Mode -&gt; Handle -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Outputable.html#printSDoc"><span class="hs-identifier hs-var hs-var">printSDoc</span></a></span></span><span> </span><span id="local-6989586621680789431"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789431"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span id="local-6989586621680789430"><span class="annot"><span class="annottext">Mode
</span><a href="#local-6989586621680789430"><span class="hs-identifier hs-var">mode</span></a></span></span><span> </span><span id="local-6989586621680789429"><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789429"><span class="hs-identifier hs-var">handle</span></a></span></span><span> </span><span id="local-6989586621680789428"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789428"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-485"></span><span>  </span><span class="annot"><span class="annottext">Mode -&gt; Int -&gt; Handle -&gt; Doc -&gt; IO ()
</span><a href="GHC.Utils.Ppr.html#printDoc_"><span class="hs-identifier hs-var">Pretty.printDoc_</span></a></span><span> </span><span class="annot"><span class="annottext">Mode
</span><a href="#local-6989586621680789430"><span class="hs-identifier hs-var">mode</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789426"><span class="hs-identifier hs-var">cols</span></a></span><span> </span><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789429"><span class="hs-identifier hs-var">handle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789428"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789431"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-486"></span><span>    </span><span class="annot"><span class="annottext">IO () -&gt; IO () -&gt; IO ()
forall a b. IO a -&gt; IO b -&gt; IO a
</span><a href="../../base/src/Control.Exception.Base.html#finally"><span class="hs-operator hs-var">`finally`</span></a></span><span>
</span><span id="line-487"></span><span>      </span><span class="annot"><span class="annottext">Mode -&gt; Int -&gt; Handle -&gt; Doc -&gt; IO ()
</span><a href="GHC.Utils.Ppr.html#printDoc_"><span class="hs-identifier hs-var">Pretty.printDoc_</span></a></span><span> </span><span class="annot"><span class="annottext">Mode
</span><a href="#local-6989586621680789430"><span class="hs-identifier hs-var">mode</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789426"><span class="hs-identifier hs-var">cols</span></a></span><span> </span><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789429"><span class="hs-identifier hs-var">handle</span></a></span><span>
</span><span id="line-488"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprColour -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#coloured"><span class="hs-identifier hs-var">coloured</span></a></span><span> </span><span class="annot"><span class="annottext">PprColour
</span><a href="GHC.Utils.Ppr.Colour.html#colReset"><span class="hs-identifier hs-var">Col.colReset</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789431"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-489"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-490"></span><span>    </span><span id="local-6989586621680789426"><span class="annot"><span class="annottext">cols :: Int
</span><a href="#local-6989586621680789426"><span class="hs-identifier hs-var hs-var">cols</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Int
</span><a href="GHC.Utils.Outputable.html#sdocLineLength"><span class="hs-identifier hs-var hs-var">sdocLineLength</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789431"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-491"></span><span>
</span><span id="line-492"></span><span class="hs-comment">-- | Like 'printSDoc' but appends an extra newline.</span><span>
</span><span id="line-493"></span><span class="annot"><a href="GHC.Utils.Outputable.html#printSDocLn"><span class="hs-identifier hs-type">printSDocLn</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.html#Mode"><span class="hs-identifier hs-type">Mode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Types.html#Handle"><span class="hs-identifier hs-type">Handle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-494"></span><span id="printSDocLn"><span class="annot"><span class="annottext">printSDocLn :: SDocContext -&gt; Mode -&gt; Handle -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Outputable.html#printSDocLn"><span class="hs-identifier hs-var hs-var">printSDocLn</span></a></span></span><span> </span><span id="local-6989586621680789423"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789423"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span id="local-6989586621680789422"><span class="annot"><span class="annottext">Mode
</span><a href="#local-6989586621680789422"><span class="hs-identifier hs-var">mode</span></a></span></span><span> </span><span id="local-6989586621680789421"><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789421"><span class="hs-identifier hs-var">handle</span></a></span></span><span> </span><span id="local-6989586621680789420"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789420"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-495"></span><span>  </span><span class="annot"><span class="annottext">SDocContext -&gt; Mode -&gt; Handle -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Outputable.html#printSDoc"><span class="hs-identifier hs-var">printSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789423"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="annot"><span class="annottext">Mode
</span><a href="#local-6989586621680789422"><span class="hs-identifier hs-var">mode</span></a></span><span> </span><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789421"><span class="hs-identifier hs-var">handle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789420"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-496"></span><span>
</span><span id="line-497"></span><span class="annot"><a href="GHC.Utils.Outputable.html#printForUser"><span class="hs-identifier hs-type">printForUser</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Types.html#Handle"><span class="hs-identifier hs-type">Handle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Depth"><span class="hs-identifier hs-type">Depth</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-498"></span><span id="printForUser"><span class="annot"><span class="annottext">printForUser :: DynFlags -&gt; Handle -&gt; PrintUnqualified -&gt; Depth -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Outputable.html#printForUser"><span class="hs-identifier hs-var hs-var">printForUser</span></a></span></span><span> </span><span id="local-6989586621680789419"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789419"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789418"><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789418"><span class="hs-identifier hs-var">handle</span></a></span></span><span> </span><span id="local-6989586621680789417"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789417"><span class="hs-identifier hs-var">unqual</span></a></span></span><span> </span><span id="local-6989586621680789416"><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789416"><span class="hs-identifier hs-var">depth</span></a></span></span><span> </span><span id="local-6989586621680789415"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789415"><span class="hs-identifier hs-var">doc</span></a></span></span><span>
</span><span id="line-499"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Mode -&gt; Handle -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Outputable.html#printSDocLn"><span class="hs-identifier hs-var">printSDocLn</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789414"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="annot"><span class="annottext">Mode
</span><a href="GHC.Utils.Ppr.html#PageMode"><span class="hs-identifier hs-var">PageMode</span></a></span><span> </span><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789418"><span class="hs-identifier hs-var">handle</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789415"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-500"></span><span>    </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621680789414"><span class="annot"><span class="annottext">ctx :: SDocContext
</span><a href="#local-6989586621680789414"><span class="hs-identifier hs-var hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789419"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkUserStyle"><span class="hs-identifier hs-var">mkUserStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789417"><span class="hs-identifier hs-var">unqual</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="#local-6989586621680789416"><span class="hs-identifier hs-var">depth</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-501"></span><span>
</span><span id="line-502"></span><span class="hs-comment">-- | Like 'printSDocLn' but specialized with 'LeftMode' and</span><span>
</span><span id="line-503"></span><span class="hs-comment">-- @'PprCode' 'CStyle'@.  This is typically used to output C-- code.</span><span>
</span><span id="line-504"></span><span class="annot"><a href="GHC.Utils.Outputable.html#printForC"><span class="hs-identifier hs-type">printForC</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Types.html#Handle"><span class="hs-identifier hs-type">Handle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-505"></span><span id="printForC"><span class="annot"><span class="annottext">printForC :: DynFlags -&gt; Handle -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Outputable.html#printForC"><span class="hs-identifier hs-var hs-var">printForC</span></a></span></span><span> </span><span id="local-6989586621680789412"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789412"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789411"><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789411"><span class="hs-identifier hs-var">handle</span></a></span></span><span> </span><span id="local-6989586621680789410"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789410"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-506"></span><span>  </span><span class="annot"><span class="annottext">SDocContext -&gt; Mode -&gt; Handle -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Outputable.html#printSDocLn"><span class="hs-identifier hs-var">printSDocLn</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789409"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="annot"><span class="annottext">Mode
</span><a href="GHC.Utils.Ppr.html#LeftMode"><span class="hs-identifier hs-var">LeftMode</span></a></span><span> </span><span class="annot"><span class="annottext">Handle
</span><a href="#local-6989586621680789411"><span class="hs-identifier hs-var">handle</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789410"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-507"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621680789409"><span class="annot"><span class="annottext">ctx :: SDocContext
</span><a href="#local-6989586621680789409"><span class="hs-identifier hs-var hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789412"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CodeStyle -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprCode"><span class="hs-identifier hs-var">PprCode</span></a></span><span> </span><span class="annot"><span class="annottext">CodeStyle
</span><a href="GHC.Utils.Outputable.html#CStyle"><span class="hs-identifier hs-var">CStyle</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-508"></span><span>
</span><span id="line-509"></span><span class="hs-comment">-- | An efficient variant of 'printSDoc' specialized for 'LeftMode' that</span><span>
</span><span id="line-510"></span><span class="hs-comment">-- outputs to a 'BufHandle'.</span><span>
</span><span id="line-511"></span><span class="annot"><a href="GHC.Utils.Outputable.html#bufLeftRenderSDoc"><span class="hs-identifier hs-type">bufLeftRenderSDoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.BufHandle.html#BufHandle"><span class="hs-identifier hs-type">BufHandle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-512"></span><span id="bufLeftRenderSDoc"><span class="annot"><span class="annottext">bufLeftRenderSDoc :: SDocContext -&gt; BufHandle -&gt; SDoc -&gt; IO ()
</span><a href="GHC.Utils.Outputable.html#bufLeftRenderSDoc"><span class="hs-identifier hs-var hs-var">bufLeftRenderSDoc</span></a></span></span><span> </span><span id="local-6989586621680789407"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789407"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span id="local-6989586621680789406"><span class="annot"><span class="annottext">BufHandle
</span><a href="#local-6989586621680789406"><span class="hs-identifier hs-var">bufHandle</span></a></span></span><span> </span><span id="local-6989586621680789405"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789405"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-513"></span><span>  </span><span class="annot"><span class="annottext">BufHandle -&gt; Doc -&gt; IO ()
</span><a href="GHC.Utils.Ppr.html#bufLeftRender"><span class="hs-identifier hs-var">Pretty.bufLeftRender</span></a></span><span> </span><span class="annot"><span class="annottext">BufHandle
</span><a href="#local-6989586621680789406"><span class="hs-identifier hs-var">bufHandle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789405"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789407"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-514"></span><span>
</span><span id="line-515"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprCode"><span class="hs-identifier hs-type">pprCode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#CodeStyle"><span class="hs-identifier hs-type">CodeStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-516"></span><span id="pprCode"><span class="annot"><span class="annottext">pprCode :: CodeStyle -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprCode"><span class="hs-identifier hs-var hs-var">pprCode</span></a></span></span><span> </span><span id="local-6989586621680789403"><span class="annot"><span class="annottext">CodeStyle
</span><a href="#local-6989586621680789403"><span class="hs-identifier hs-var">cs</span></a></span></span><span> </span><span id="local-6989586621680789402"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789402"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PprStyle -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#withPprStyle"><span class="hs-identifier hs-var">withPprStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CodeStyle -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprCode"><span class="hs-identifier hs-var">PprCode</span></a></span><span> </span><span class="annot"><span class="annottext">CodeStyle
</span><a href="#local-6989586621680789403"><span class="hs-identifier hs-var">cs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789402"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-517"></span><span>
</span><span id="line-518"></span><span class="annot"><a href="GHC.Utils.Outputable.html#mkCodeStyle"><span class="hs-identifier hs-type">mkCodeStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#CodeStyle"><span class="hs-identifier hs-type">CodeStyle</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprStyle"><span class="hs-identifier hs-type">PprStyle</span></a></span><span>
</span><span id="line-519"></span><span id="mkCodeStyle"><span class="annot"><span class="annottext">mkCodeStyle :: CodeStyle -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkCodeStyle"><span class="hs-identifier hs-var hs-var">mkCodeStyle</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CodeStyle -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#PprCode"><span class="hs-identifier hs-var">PprCode</span></a></span><span>
</span><span id="line-520"></span><span>
</span><span id="line-521"></span><span class="hs-comment">-- Can't make SDoc an instance of Show because SDoc is just a function type</span><span>
</span><span id="line-522"></span><span class="hs-comment">-- However, Doc *is* an instance of Show</span><span>
</span><span id="line-523"></span><span class="hs-comment">-- showSDoc just blasts it out as a string</span><span>
</span><span id="line-524"></span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDoc"><span class="hs-identifier hs-type">showSDoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-525"></span><span id="showSDoc"><span class="annot"><span class="annottext">showSDoc :: DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDoc"><span class="hs-identifier hs-var hs-var">showSDoc</span></a></span></span><span> </span><span id="local-6989586621680789401"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789401"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789400"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789400"><span class="hs-identifier hs-var">sdoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-var">renderWithStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789401"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="GHC.Utils.Outputable.html#defaultUserStyle"><span class="hs-identifier hs-var">defaultUserStyle</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789400"><span class="hs-identifier hs-var">sdoc</span></a></span><span>
</span><span id="line-526"></span><span>
</span><span id="line-527"></span><span class="hs-comment">-- showSDocUnsafe is unsafe, because `unsafeGlobalDynFlags` might not be</span><span>
</span><span id="line-528"></span><span class="hs-comment">-- initialised yet.</span><span>
</span><span id="line-529"></span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocUnsafe"><span class="hs-identifier hs-type">showSDocUnsafe</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-530"></span><span id="showSDocUnsafe"><span class="annot"><span class="annottext">showSDocUnsafe :: SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocUnsafe"><span class="hs-identifier hs-var hs-var">showSDocUnsafe</span></a></span></span><span> </span><span id="local-6989586621680789399"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789399"><span class="hs-identifier hs-var">sdoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDoc"><span class="hs-identifier hs-var">showSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="GHC.Driver.Session.html#unsafeGlobalDynFlags"><span class="hs-identifier hs-var">unsafeGlobalDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789399"><span class="hs-identifier hs-var">sdoc</span></a></span><span>
</span><span id="line-531"></span><span>
</span><span id="line-532"></span><span id="local-6989586621680790090"><span class="annot"><a href="GHC.Utils.Outputable.html#showPpr"><span class="hs-identifier hs-type">showPpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790090"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680790090"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span></span><span>
</span><span id="line-533"></span><span id="showPpr"><span class="annot"><span class="annottext">showPpr :: forall a. Outputable a =&gt; DynFlags -&gt; a -&gt; String
</span><a href="GHC.Utils.Outputable.html#showPpr"><span class="hs-identifier hs-var hs-var">showPpr</span></a></span></span><span> </span><span id="local-6989586621680789396"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789396"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789395"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789395"><span class="hs-identifier hs-var">thing</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDoc"><span class="hs-identifier hs-var">showSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789396"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789395"><span class="hs-identifier hs-var">thing</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-534"></span><span>
</span><span id="line-535"></span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocUnqual"><span class="hs-identifier hs-type">showSDocUnqual</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-536"></span><span class="hs-comment">-- Only used by Haddock</span><span>
</span><span id="line-537"></span><span id="showSDocUnqual"><span class="annot"><span class="annottext">showSDocUnqual :: DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocUnqual"><span class="hs-identifier hs-var hs-var">showSDocUnqual</span></a></span></span><span> </span><span id="local-6989586621680789394"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789394"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789393"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789393"><span class="hs-identifier hs-var">sdoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDoc"><span class="hs-identifier hs-var">showSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789394"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789393"><span class="hs-identifier hs-var">sdoc</span></a></span><span>
</span><span id="line-538"></span><span>
</span><span id="line-539"></span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocForUser"><span class="hs-identifier hs-type">showSDocForUser</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PrintUnqualified"><span class="hs-identifier hs-type">PrintUnqualified</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-540"></span><span class="hs-comment">-- Allows caller to specify the PrintUnqualified to use</span><span>
</span><span id="line-541"></span><span id="showSDocForUser"><span class="annot"><span class="annottext">showSDocForUser :: DynFlags -&gt; PrintUnqualified -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocForUser"><span class="hs-identifier hs-var hs-var">showSDocForUser</span></a></span></span><span> </span><span id="local-6989586621680789392"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789392"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789391"><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789391"><span class="hs-identifier hs-var">unqual</span></a></span></span><span> </span><span id="local-6989586621680789390"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789390"><span class="hs-identifier hs-var">doc</span></a></span></span><span>
</span><span id="line-542"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-var">renderWithStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789392"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PrintUnqualified -&gt; Depth -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkUserStyle"><span class="hs-identifier hs-var">mkUserStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><a href="#local-6989586621680789391"><span class="hs-identifier hs-var">unqual</span></a></span><span> </span><span class="annot"><span class="annottext">Depth
</span><a href="GHC.Utils.Outputable.html#AllTheWay"><span class="hs-identifier hs-var">AllTheWay</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789390"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-543"></span><span>
</span><span id="line-544"></span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocDump"><span class="hs-identifier hs-type">showSDocDump</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-545"></span><span id="showSDocDump"><span class="annot"><span class="annottext">showSDocDump :: DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocDump"><span class="hs-identifier hs-var hs-var">showSDocDump</span></a></span></span><span> </span><span id="local-6989586621680789389"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789389"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789388"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789388"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-var">renderWithStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789389"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="GHC.Utils.Outputable.html#defaultDumpStyle"><span class="hs-identifier hs-var">defaultDumpStyle</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789388"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-546"></span><span>
</span><span id="line-547"></span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocDebug"><span class="hs-identifier hs-type">showSDocDebug</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-548"></span><span id="showSDocDebug"><span class="annot"><span class="annottext">showSDocDebug :: DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocDebug"><span class="hs-identifier hs-var hs-var">showSDocDebug</span></a></span></span><span> </span><span id="local-6989586621680789387"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789387"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789386"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789386"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-var">renderWithStyle</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789385"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789386"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-549"></span><span>   </span><span class="hs-keyword">where</span><span>
</span><span id="line-550"></span><span>      </span><span id="local-6989586621680789385"><span class="annot"><span class="annottext">ctx :: SDocContext
</span><a href="#local-6989586621680789385"><span class="hs-identifier hs-var hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789387"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="GHC.Utils.Outputable.html#defaultDumpStyle"><span class="hs-identifier hs-var">defaultDumpStyle</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-551"></span><span>               </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">sdocPprDebug :: Bool
</span><a href="GHC.Utils.Outputable.html#sdocPprDebug"><span class="hs-identifier hs-var">sdocPprDebug</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-552"></span><span>               </span><span class="hs-special">}</span><span>
</span><span id="line-553"></span><span>
</span><span id="line-554"></span><span class="annot"><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-type">renderWithStyle</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-555"></span><span id="renderWithStyle"><span class="annot"><span class="annottext">renderWithStyle :: SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-var hs-var">renderWithStyle</span></a></span></span><span> </span><span id="local-6989586621680789384"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789384"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span id="local-6989586621680789383"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789383"><span class="hs-identifier hs-var">sdoc</span></a></span></span><span>
</span><span id="line-556"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680789382"><span class="annot"><span class="annottext">s :: Style
</span><a href="#local-6989586621680789382"><span class="hs-identifier hs-var hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Style
</span><a href="GHC.Utils.Ppr.html#style"><span class="hs-identifier hs-var">Pretty.style</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mode :: Mode
</span><a href="GHC.Utils.Ppr.html#mode"><span class="hs-identifier hs-var">Pretty.mode</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Mode
</span><a href="GHC.Utils.Ppr.html#PageMode"><span class="hs-identifier hs-var">PageMode</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-557"></span><span>                          </span><span class="annot"><span class="annottext">lineLength :: Int
</span><a href="GHC.Utils.Ppr.html#lineLength"><span class="hs-identifier hs-var">Pretty.lineLength</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Int
</span><a href="GHC.Utils.Outputable.html#sdocLineLength"><span class="hs-identifier hs-var hs-var">sdocLineLength</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789384"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-558"></span><span>    </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">Style -&gt; Doc -&gt; String
</span><a href="GHC.Utils.Ppr.html#renderStyle"><span class="hs-identifier hs-var">Pretty.renderStyle</span></a></span><span> </span><span class="annot"><span class="annottext">Style
</span><a href="#local-6989586621680789382"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; String) -&gt; Doc -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789383"><span class="hs-identifier hs-var">sdoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789384"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-559"></span><span>
</span><span id="line-560"></span><span class="hs-comment">-- This shows an SDoc, but on one line only. It's cheaper than a full</span><span>
</span><span id="line-561"></span><span class="hs-comment">-- showSDoc, designed for when we're getting results like &quot;Foo.bar&quot;</span><span>
</span><span id="line-562"></span><span class="hs-comment">-- and &quot;foo{uniq strictness}&quot; so we don't want fancy layout anyway.</span><span>
</span><span id="line-563"></span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocOneLine"><span class="hs-identifier hs-type">showSDocOneLine</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-564"></span><span id="showSDocOneLine"><span class="annot"><span class="annottext">showSDocOneLine :: SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocOneLine"><span class="hs-identifier hs-var hs-var">showSDocOneLine</span></a></span></span><span> </span><span id="local-6989586621680789377"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789377"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span id="local-6989586621680789376"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789376"><span class="hs-identifier hs-var">d</span></a></span></span><span>
</span><span id="line-565"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680789375"><span class="annot"><span class="annottext">s :: Style
</span><a href="#local-6989586621680789375"><span class="hs-identifier hs-var hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Style
</span><a href="GHC.Utils.Ppr.html#style"><span class="hs-identifier hs-var">Pretty.style</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mode :: Mode
</span><a href="GHC.Utils.Ppr.html#mode"><span class="hs-identifier hs-var">Pretty.mode</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Mode
</span><a href="GHC.Utils.Ppr.html#OneLineMode"><span class="hs-identifier hs-var">OneLineMode</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-566"></span><span>                         </span><span class="annot"><span class="annottext">lineLength :: Int
</span><a href="GHC.Utils.Ppr.html#lineLength"><span class="hs-identifier hs-var">Pretty.lineLength</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Int
</span><a href="GHC.Utils.Outputable.html#sdocLineLength"><span class="hs-identifier hs-var hs-var">sdocLineLength</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789377"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-keyword">in</span><span>
</span><span id="line-567"></span><span>   </span><span class="annot"><span class="annottext">Style -&gt; Doc -&gt; String
</span><a href="GHC.Utils.Ppr.html#renderStyle"><span class="hs-identifier hs-var">Pretty.renderStyle</span></a></span><span> </span><span class="annot"><span class="annottext">Style
</span><a href="#local-6989586621680789375"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; String) -&gt; Doc -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-568"></span><span>      </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789376"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789377"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-569"></span><span>
</span><span id="line-570"></span><span class="annot"><a href="GHC.Utils.Outputable.html#showSDocDumpOneLine"><span class="hs-identifier hs-type">showSDocDumpOneLine</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-571"></span><span id="showSDocDumpOneLine"><span class="annot"><span class="annottext">showSDocDumpOneLine :: DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocDumpOneLine"><span class="hs-identifier hs-var hs-var">showSDocDumpOneLine</span></a></span></span><span> </span><span id="local-6989586621680789373"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789373"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680789372"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789372"><span class="hs-identifier hs-var">d</span></a></span></span><span>
</span><span id="line-572"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680789371"><span class="annot"><span class="annottext">s :: Style
</span><a href="#local-6989586621680789371"><span class="hs-identifier hs-var hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Style
</span><a href="GHC.Utils.Ppr.html#style"><span class="hs-identifier hs-var">Pretty.style</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mode :: Mode
</span><a href="GHC.Utils.Ppr.html#mode"><span class="hs-identifier hs-var">Pretty.mode</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Mode
</span><a href="GHC.Utils.Ppr.html#OneLineMode"><span class="hs-identifier hs-var">OneLineMode</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-573"></span><span>                         </span><span class="annot"><span class="annottext">lineLength :: Int
</span><a href="GHC.Utils.Ppr.html#lineLength"><span class="hs-identifier hs-var">Pretty.lineLength</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="GHC.Utils.Outputable.html#irrelevantNCols"><span class="hs-identifier hs-var">irrelevantNCols</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-keyword">in</span><span>
</span><span id="line-574"></span><span>   </span><span class="annot"><span class="annottext">Style -&gt; Doc -&gt; String
</span><a href="GHC.Utils.Ppr.html#renderStyle"><span class="hs-identifier hs-var">Pretty.renderStyle</span></a></span><span> </span><span class="annot"><span class="annottext">Style
</span><a href="#local-6989586621680789371"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; String) -&gt; Doc -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-575"></span><span>      </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789372"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680789373"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="GHC.Utils.Outputable.html#defaultDumpStyle"><span class="hs-identifier hs-var">defaultDumpStyle</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-576"></span><span>
</span><span id="line-577"></span><span class="annot"><a href="GHC.Utils.Outputable.html#irrelevantNCols"><span class="hs-identifier hs-type">irrelevantNCols</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-578"></span><span class="hs-comment">-- Used for OneLineMode and LeftMode when number of cols isn't used</span><span>
</span><span id="line-579"></span><span id="irrelevantNCols"><span class="annot"><span class="annottext">irrelevantNCols :: Int
</span><a href="GHC.Utils.Outputable.html#irrelevantNCols"><span class="hs-identifier hs-var hs-var">irrelevantNCols</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-580"></span><span>
</span><span id="line-581"></span><span class="annot"><a href="GHC.Utils.Outputable.html#isEmpty"><span class="hs-identifier hs-type">isEmpty</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-582"></span><span id="isEmpty"><span class="annot"><span class="annottext">isEmpty :: SDocContext -&gt; SDoc -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#isEmpty"><span class="hs-identifier hs-var hs-var">isEmpty</span></a></span></span><span> </span><span id="local-6989586621680789369"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789369"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span id="local-6989586621680789368"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789368"><span class="hs-identifier hs-var">sdoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Bool
</span><a href="GHC.Utils.Ppr.html#isEmpty"><span class="hs-identifier hs-var">Pretty.isEmpty</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Bool) -&gt; Doc -&gt; Bool
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789368"><span class="hs-identifier hs-var">sdoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789369"><span class="hs-identifier hs-var">ctx</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">sdocPprDebug :: Bool
</span><a href="GHC.Utils.Outputable.html#sdocPprDebug"><span class="hs-identifier hs-var">sdocPprDebug</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-583"></span><span>
</span><span id="line-584"></span><span class="annot"><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-type">docToSDoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-585"></span><span id="docToSDoc"><span class="annot"><span class="annottext">docToSDoc :: Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var hs-var">docToSDoc</span></a></span></span><span> </span><span id="local-6989586621680789366"><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621680789366"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">SDocContext
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621680789366"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-586"></span><span>
</span><span id="line-587"></span><span class="annot"><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-type">empty</span></a></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-588"></span><span class="annot"><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-type">char</span></a></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-589"></span><span class="annot"><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-type">text</span></a></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-590"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-type">ftext</span></a></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-591"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-type">ptext</span></a></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-592"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ztext"><span class="hs-identifier hs-type">ztext</span></a></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastZString"><span class="hs-identifier hs-type">FastZString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-593"></span><span class="annot"><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-type">int</span></a></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-594"></span><span class="annot"><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-type">integer</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Integer</span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-595"></span><span class="annot"><a href="GHC.Utils.Outputable.html#word"><span class="hs-identifier hs-type">word</span></a></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Integer</span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-596"></span><span class="annot"><a href="GHC.Utils.Outputable.html#float"><span class="hs-identifier hs-type">float</span></a></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Float</span></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-597"></span><span class="annot"><a href="GHC.Utils.Outputable.html#double"><span class="hs-identifier hs-type">double</span></a></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Double</span></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-598"></span><span class="annot"><a href="GHC.Utils.Outputable.html#rational"><span class="hs-identifier hs-type">rational</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Real.html#Rational"><span class="hs-identifier hs-type">Rational</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-599"></span><span>
</span><span id="line-600"></span><span id="empty"><span class="annot"><span class="annottext">empty :: SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var hs-var">empty</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#empty"><span class="hs-identifier hs-var">Pretty.empty</span></a></span><span>
</span><span id="line-601"></span><span id="char"><span class="annot"><span class="annottext">char :: Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var hs-var">char</span></a></span></span><span> </span><span id="local-6989586621680789364"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680789364"><span class="hs-identifier hs-var">c</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#char"><span class="hs-identifier hs-var">Pretty.char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680789364"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-602"></span><span>
</span><span id="line-603"></span><span id="text"><span class="annot"><span class="annottext">text :: String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var hs-var">text</span></a></span></span><span> </span><span id="local-6989586621680789362"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680789362"><span class="hs-identifier hs-var">s</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680789362"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-604"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#text"><span class="hs-pragma hs-type">text</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>   </span><span class="hs-comment">-- Inline so that the RULE Pretty.text will fire</span><span>
</span><span id="line-605"></span><span>
</span><span id="line-606"></span><span id="ftext"><span class="annot"><span class="annottext">ftext :: FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var hs-var">ftext</span></a></span></span><span> </span><span id="local-6989586621680789361"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680789361"><span class="hs-identifier hs-var">s</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#ftext"><span class="hs-identifier hs-var">Pretty.ftext</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680789361"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-607"></span><span id="ptext"><span class="annot"><span class="annottext">ptext :: PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var hs-var">ptext</span></a></span></span><span> </span><span id="local-6989586621680789359"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621680789359"><span class="hs-identifier hs-var">s</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#ptext"><span class="hs-identifier hs-var">Pretty.ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621680789359"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-608"></span><span id="ztext"><span class="annot"><span class="annottext">ztext :: FastZString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ztext"><span class="hs-identifier hs-var hs-var">ztext</span></a></span></span><span> </span><span id="local-6989586621680789357"><span class="annot"><span class="annottext">FastZString
</span><a href="#local-6989586621680789357"><span class="hs-identifier hs-var">s</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FastZString -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#ztext"><span class="hs-identifier hs-var">Pretty.ztext</span></a></span><span> </span><span class="annot"><span class="annottext">FastZString
</span><a href="#local-6989586621680789357"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-609"></span><span id="int"><span class="annot"><span class="annottext">int :: Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var hs-var">int</span></a></span></span><span> </span><span id="local-6989586621680789355"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789355"><span class="hs-identifier hs-var">n</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#int"><span class="hs-identifier hs-var">Pretty.int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789355"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-610"></span><span id="integer"><span class="annot"><span class="annottext">integer :: Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var hs-var">integer</span></a></span></span><span> </span><span id="local-6989586621680789353"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680789353"><span class="hs-identifier hs-var">n</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#integer"><span class="hs-identifier hs-var">Pretty.integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680789353"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-611"></span><span id="float"><span class="annot"><span class="annottext">float :: Float -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#float"><span class="hs-identifier hs-var hs-var">float</span></a></span></span><span> </span><span id="local-6989586621680789351"><span class="annot"><span class="annottext">Float
</span><a href="#local-6989586621680789351"><span class="hs-identifier hs-var">n</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Float -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#float"><span class="hs-identifier hs-var">Pretty.float</span></a></span><span> </span><span class="annot"><span class="annottext">Float
</span><a href="#local-6989586621680789351"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-612"></span><span id="double"><span class="annot"><span class="annottext">double :: Double -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#double"><span class="hs-identifier hs-var hs-var">double</span></a></span></span><span> </span><span id="local-6989586621680789349"><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621680789349"><span class="hs-identifier hs-var">n</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Double -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#double"><span class="hs-identifier hs-var">Pretty.double</span></a></span><span> </span><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621680789349"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-613"></span><span id="rational"><span class="annot"><span class="annottext">rational :: Rational -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#rational"><span class="hs-identifier hs-var hs-var">rational</span></a></span></span><span> </span><span id="local-6989586621680789347"><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621680789347"><span class="hs-identifier hs-var">n</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Rational -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#rational"><span class="hs-identifier hs-var">Pretty.rational</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621680789347"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-614"></span><span>              </span><span class="hs-comment">-- See Note [Print Hexadecimal Literals] in GHC.Utils.Ppr</span><span>
</span><span id="line-615"></span><span id="word"><span class="annot"><span class="annottext">word :: Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#word"><span class="hs-identifier hs-var hs-var">word</span></a></span></span><span> </span><span id="local-6989586621680789345"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680789345"><span class="hs-identifier hs-var">n</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocHexWordLiterals"><span class="hs-identifier hs-var hs-var">sdocHexWordLiterals</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-616"></span><span>               </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#hex"><span class="hs-identifier hs-var">Pretty.hex</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680789345"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-617"></span><span>               </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#integer"><span class="hs-identifier hs-var">Pretty.integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680789345"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-618"></span><span>
</span><span id="line-619"></span><span class="hs-comment">-- | @doublePrec p n@ shows a floating point number @n@ with @p@</span><span>
</span><span id="line-620"></span><span class="hs-comment">-- digits of precision after the decimal point.</span><span>
</span><span id="line-621"></span><span class="annot"><a href="GHC.Utils.Outputable.html#doublePrec"><span class="hs-identifier hs-type">doublePrec</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Double</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-622"></span><span id="doublePrec"><span class="annot"><span class="annottext">doublePrec :: Int -&gt; Double -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doublePrec"><span class="hs-identifier hs-var hs-var">doublePrec</span></a></span></span><span> </span><span id="local-6989586621680789343"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789343"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621680789342"><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621680789342"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe Int -&gt; Double -&gt; ShowS
forall a. RealFloat a =&gt; Maybe Int -&gt; a -&gt; ShowS
</span><a href="../../base/src/Numeric.html#showFFloat"><span class="hs-identifier hs-var">showFFloat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Maybe Int
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789343"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621680789342"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-623"></span><span>
</span><span id="line-624"></span><span class="annot"><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-type">parens</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-type">braces</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-type">brackets</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#quotes"><span class="hs-identifier hs-type">quotes</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#quote"><span class="hs-identifier hs-type">quote</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-625"></span><span>        </span><span class="annot"><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-type">doubleQuotes</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#angleBrackets"><span class="hs-identifier hs-type">angleBrackets</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-626"></span><span>
</span><span id="line-627"></span><span id="parens"><span class="annot"><span class="annottext">parens :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var hs-var">parens</span></a></span></span><span> </span><span id="local-6989586621680789341"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789341"><span class="hs-identifier hs-var">d</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#parens"><span class="hs-identifier hs-var">Pretty.parens</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; (SDocContext -&gt; Doc) -&gt; SDocContext -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789341"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-628"></span><span id="braces"><span class="annot"><span class="annottext">braces :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var hs-var">braces</span></a></span></span><span> </span><span id="local-6989586621680789339"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789339"><span class="hs-identifier hs-var">d</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#braces"><span class="hs-identifier hs-var">Pretty.braces</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; (SDocContext -&gt; Doc) -&gt; SDocContext -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789339"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-629"></span><span id="brackets"><span class="annot"><span class="annottext">brackets :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var hs-var">brackets</span></a></span></span><span> </span><span id="local-6989586621680789337"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789337"><span class="hs-identifier hs-var">d</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#brackets"><span class="hs-identifier hs-var">Pretty.brackets</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; (SDocContext -&gt; Doc) -&gt; SDocContext -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789337"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-630"></span><span id="quote"><span class="annot"><span class="annottext">quote :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quote"><span class="hs-identifier hs-var hs-var">quote</span></a></span></span><span> </span><span id="local-6989586621680789335"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789335"><span class="hs-identifier hs-var">d</span></a></span></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#quote"><span class="hs-identifier hs-var">Pretty.quote</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; (SDocContext -&gt; Doc) -&gt; SDocContext -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789335"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-631"></span><span id="doubleQuotes"><span class="annot"><span class="annottext">doubleQuotes :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var hs-var">doubleQuotes</span></a></span></span><span> </span><span id="local-6989586621680789333"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789333"><span class="hs-identifier hs-var">d</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#doubleQuotes"><span class="hs-identifier hs-var">Pretty.doubleQuotes</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; (SDocContext -&gt; Doc) -&gt; SDocContext -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789333"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-632"></span><span id="angleBrackets"><span class="annot"><span class="annottext">angleBrackets :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#angleBrackets"><span class="hs-identifier hs-var hs-var">angleBrackets</span></a></span></span><span> </span><span id="local-6989586621680789331"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789331"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&lt;'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789331"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&gt;'</span></span><span>
</span><span id="line-633"></span><span>
</span><span id="line-634"></span><span class="annot"><a href="GHC.Utils.Outputable.html#cparen"><span class="hs-identifier hs-type">cparen</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-635"></span><span id="cparen"><span class="annot"><span class="annottext">cparen :: Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#cparen"><span class="hs-identifier hs-var hs-var">cparen</span></a></span></span><span> </span><span id="local-6989586621680789330"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789330"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span id="local-6989586621680789329"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789329"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#maybeParens"><span class="hs-identifier hs-var">Pretty.maybeParens</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789330"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; (SDocContext -&gt; Doc) -&gt; SDocContext -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789329"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-636"></span><span>
</span><span id="line-637"></span><span class="hs-comment">-- 'quotes' encloses something in single quotes...</span><span>
</span><span id="line-638"></span><span class="hs-comment">-- but it omits them if the thing begins or ends in a single quote</span><span>
</span><span id="line-639"></span><span class="hs-comment">-- so that we don't get `foo''.  Instead we just have foo'.</span><span>
</span><span id="line-640"></span><span id="quotes"><span class="annot"><span class="annottext">quotes :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotes"><span class="hs-identifier hs-var hs-var">quotes</span></a></span></span><span> </span><span id="local-6989586621680789327"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789327"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocCanUseUnicode"><span class="hs-identifier hs-var hs-var">sdocCanUseUnicode</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-641"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8216;'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789327"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8217;'</span></span><span>
</span><span id="line-642"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789326"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789326"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-643"></span><span>      </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680789325"><span class="annot"><span class="annottext">pp_d :: Doc
</span><a href="#local-6989586621680789325"><span class="hs-identifier hs-var hs-var">pp_d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789327"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789326"><span class="hs-identifier hs-var">sty</span></a></span><span>
</span><span id="line-644"></span><span>          </span><span id="local-6989586621680789322"><span class="annot"><span class="annottext">str :: String
</span><a href="#local-6989586621680789322"><span class="hs-identifier hs-var hs-var">str</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621680789325"><span class="hs-identifier hs-var">pp_d</span></a></span><span>
</span><span id="line-645"></span><span>      </span><span class="hs-keyword">in</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680789322"><span class="hs-identifier hs-var">str</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; Maybe Char
forall a. [a] -&gt; Maybe a
</span><a href="GHC.Utils.Misc.html#lastMaybe"><span class="hs-identifier hs-var">lastMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680789322"><span class="hs-identifier hs-var">str</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-646"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\''</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621680789325"><span class="hs-identifier hs-var">pp_d</span></a></span><span>
</span><span id="line-647"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\''</span></span><span> </span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Maybe Char
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621680789325"><span class="hs-identifier hs-var">pp_d</span></a></span><span>
</span><span id="line-648"></span><span>        </span><span id="local-6989586621680789319"><span class="annot"><span class="annottext">(String, Maybe Char)
</span><a href="#local-6989586621680789319"><span class="hs-identifier hs-var">_other</span></a></span></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#quotes"><span class="hs-identifier hs-var">Pretty.quotes</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="#local-6989586621680789325"><span class="hs-identifier hs-var">pp_d</span></a></span><span>
</span><span id="line-649"></span><span>
</span><span id="line-650"></span><span class="annot"><a href="GHC.Utils.Outputable.html#semi"><span class="hs-identifier hs-type">semi</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-type">comma</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-type">colon</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier hs-type">equals</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-type">space</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#dcolon"><span class="hs-identifier hs-type">dcolon</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#underscore"><span class="hs-identifier hs-type">underscore</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#dot"><span class="hs-identifier hs-type">dot</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#vbar"><span class="hs-identifier hs-type">vbar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-651"></span><span class="annot"><a href="GHC.Utils.Outputable.html#arrow"><span class="hs-identifier hs-type">arrow</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#lollipop"><span class="hs-identifier hs-type">lollipop</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#larrow"><span class="hs-identifier hs-type">larrow</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#darrow"><span class="hs-identifier hs-type">darrow</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#arrowt"><span class="hs-identifier hs-type">arrowt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#larrowt"><span class="hs-identifier hs-type">larrowt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#arrowtt"><span class="hs-identifier hs-type">arrowtt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#larrowtt"><span class="hs-identifier hs-type">larrowtt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-652"></span><span class="annot"><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-type">lparen</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-type">rparen</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#lbrack"><span class="hs-identifier hs-type">lbrack</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#rbrack"><span class="hs-identifier hs-type">rbrack</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#lbrace"><span class="hs-identifier hs-type">lbrace</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#rbrace"><span class="hs-identifier hs-type">rbrace</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#blankLine"><span class="hs-identifier hs-type">blankLine</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-653"></span><span>
</span><span id="line-654"></span><span id="blankLine"><span class="annot"><span class="annottext">blankLine :: SDoc
</span><a href="GHC.Utils.Outputable.html#blankLine"><span class="hs-identifier hs-var hs-var">blankLine</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span>
</span><span id="line-655"></span><span id="dcolon"><span class="annot"><span class="annottext">dcolon :: SDoc
</span><a href="GHC.Utils.Outputable.html#dcolon"><span class="hs-identifier hs-var hs-var">dcolon</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8759;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;::&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-656"></span><span id="arrow"><span class="annot"><span class="annottext">arrow :: SDoc
</span><a href="GHC.Utils.Outputable.html#arrow"><span class="hs-identifier hs-var hs-var">arrow</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8594;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&gt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-657"></span><span id="lollipop"><span class="annot"><span class="annottext">lollipop :: SDoc
</span><a href="GHC.Utils.Outputable.html#lollipop"><span class="hs-identifier hs-var hs-var">lollipop</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8888;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%1 -&gt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-658"></span><span id="larrow"><span class="annot"><span class="annottext">larrow :: SDoc
</span><a href="GHC.Utils.Outputable.html#larrow"><span class="hs-identifier hs-var hs-var">larrow</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8592;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;-&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-659"></span><span id="darrow"><span class="annot"><span class="annottext">darrow :: SDoc
</span><a href="GHC.Utils.Outputable.html#darrow"><span class="hs-identifier hs-var hs-var">darrow</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8658;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&gt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-660"></span><span id="arrowt"><span class="annot"><span class="annottext">arrowt :: SDoc
</span><a href="GHC.Utils.Outputable.html#arrowt"><span class="hs-identifier hs-var hs-var">arrowt</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#10522;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&gt;-&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-661"></span><span id="larrowt"><span class="annot"><span class="annottext">larrowt :: SDoc
</span><a href="GHC.Utils.Outputable.html#larrowt"><span class="hs-identifier hs-var hs-var">larrowt</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#10521;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&lt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-662"></span><span id="arrowtt"><span class="annot"><span class="annottext">arrowtt :: SDoc
</span><a href="GHC.Utils.Outputable.html#arrowtt"><span class="hs-identifier hs-var hs-var">arrowtt</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#10524;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&gt;&gt;-&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-663"></span><span id="larrowtt"><span class="annot"><span class="annottext">larrowtt :: SDoc
</span><a href="GHC.Utils.Outputable.html#larrowtt"><span class="hs-identifier hs-var hs-var">larrowtt</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#10523;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#text"><span class="hs-identifier hs-var">Pretty.text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-&lt;&lt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-664"></span><span id="semi"><span class="annot"><span class="annottext">semi :: SDoc
</span><a href="GHC.Utils.Outputable.html#semi"><span class="hs-identifier hs-var hs-var">semi</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#semi"><span class="hs-identifier hs-var">Pretty.semi</span></a></span><span>
</span><span id="line-665"></span><span id="comma"><span class="annot"><span class="annottext">comma :: SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var hs-var">comma</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#comma"><span class="hs-identifier hs-var">Pretty.comma</span></a></span><span>
</span><span id="line-666"></span><span id="colon"><span class="annot"><span class="annottext">colon :: SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var hs-var">colon</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#colon"><span class="hs-identifier hs-var">Pretty.colon</span></a></span><span>
</span><span id="line-667"></span><span id="equals"><span class="annot"><span class="annottext">equals :: SDoc
</span><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier hs-var hs-var">equals</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#equals"><span class="hs-identifier hs-var">Pretty.equals</span></a></span><span>
</span><span id="line-668"></span><span id="space"><span class="annot"><span class="annottext">space :: SDoc
</span><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-var hs-var">space</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#space"><span class="hs-identifier hs-var">Pretty.space</span></a></span><span>
</span><span id="line-669"></span><span id="underscore"><span class="annot"><span class="annottext">underscore :: SDoc
</span><a href="GHC.Utils.Outputable.html#underscore"><span class="hs-identifier hs-var hs-var">underscore</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'_'</span></span><span>
</span><span id="line-670"></span><span id="dot"><span class="annot"><span class="annottext">dot :: SDoc
</span><a href="GHC.Utils.Outputable.html#dot"><span class="hs-identifier hs-var hs-var">dot</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'.'</span></span><span>
</span><span id="line-671"></span><span id="vbar"><span class="annot"><span class="annottext">vbar :: SDoc
</span><a href="GHC.Utils.Outputable.html#vbar"><span class="hs-identifier hs-var hs-var">vbar</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'|'</span></span><span>
</span><span id="line-672"></span><span id="lparen"><span class="annot"><span class="annottext">lparen :: SDoc
</span><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-var hs-var">lparen</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#lparen"><span class="hs-identifier hs-var">Pretty.lparen</span></a></span><span>
</span><span id="line-673"></span><span id="rparen"><span class="annot"><span class="annottext">rparen :: SDoc
</span><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-var hs-var">rparen</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#rparen"><span class="hs-identifier hs-var">Pretty.rparen</span></a></span><span>
</span><span id="line-674"></span><span id="lbrack"><span class="annot"><span class="annottext">lbrack :: SDoc
</span><a href="GHC.Utils.Outputable.html#lbrack"><span class="hs-identifier hs-var hs-var">lbrack</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#lbrack"><span class="hs-identifier hs-var">Pretty.lbrack</span></a></span><span>
</span><span id="line-675"></span><span id="rbrack"><span class="annot"><span class="annottext">rbrack :: SDoc
</span><a href="GHC.Utils.Outputable.html#rbrack"><span class="hs-identifier hs-var hs-var">rbrack</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#rbrack"><span class="hs-identifier hs-var">Pretty.rbrack</span></a></span><span>
</span><span id="line-676"></span><span id="lbrace"><span class="annot"><span class="annottext">lbrace :: SDoc
</span><a href="GHC.Utils.Outputable.html#lbrace"><span class="hs-identifier hs-var hs-var">lbrace</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#lbrace"><span class="hs-identifier hs-var">Pretty.lbrace</span></a></span><span>
</span><span id="line-677"></span><span id="rbrace"><span class="annot"><span class="annottext">rbrace :: SDoc
</span><a href="GHC.Utils.Outputable.html#rbrace"><span class="hs-identifier hs-var hs-var">rbrace</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#docToSDoc"><span class="hs-identifier hs-var">docToSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; SDoc) -&gt; Doc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="GHC.Utils.Ppr.html#rbrace"><span class="hs-identifier hs-var">Pretty.rbrace</span></a></span><span>
</span><span id="line-678"></span><span>
</span><span id="line-679"></span><span class="annot"><a href="GHC.Utils.Outputable.html#mulArrow"><span class="hs-identifier hs-type">mulArrow</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-680"></span><span id="mulArrow"><span class="annot"><span class="annottext">mulArrow :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#mulArrow"><span class="hs-identifier hs-var hs-var">mulArrow</span></a></span></span><span> </span><span id="local-6989586621680789306"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789306"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789306"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span>
</span><span id="line-681"></span><span>
</span><span id="line-682"></span><span>
</span><span id="line-683"></span><span class="annot"><a href="GHC.Utils.Outputable.html#forAllLit"><span class="hs-identifier hs-type">forAllLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-684"></span><span id="forAllLit"><span class="annot"><span class="annottext">forAllLit :: SDoc
</span><a href="GHC.Utils.Outputable.html#forAllLit"><span class="hs-identifier hs-var hs-var">forAllLit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var">unicodeSyntax</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8704;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;forall&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-685"></span><span>
</span><span id="line-686"></span><span class="annot"><a href="GHC.Utils.Outputable.html#bullet"><span class="hs-identifier hs-type">bullet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-687"></span><span id="bullet"><span class="annot"><span class="annottext">bullet :: SDoc
</span><a href="GHC.Utils.Outputable.html#bullet"><span class="hs-identifier hs-var hs-var">bullet</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicode"><span class="hs-identifier hs-var">unicode</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&#8226;'</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'*'</span></span><span class="hs-special">)</span><span>
</span><span id="line-688"></span><span>
</span><span id="line-689"></span><span class="annot"><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-type">unicodeSyntax</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-690"></span><span id="unicodeSyntax"><span class="annot"><span class="annottext">unicodeSyntax :: SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicodeSyntax"><span class="hs-identifier hs-var hs-var">unicodeSyntax</span></a></span></span><span> </span><span id="local-6989586621680789304"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789304"><span class="hs-identifier hs-var">unicode</span></a></span></span><span> </span><span id="local-6989586621680789303"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789303"><span class="hs-identifier hs-var">plain</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-691"></span><span>   </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocCanUseUnicode"><span class="hs-identifier hs-var hs-var">sdocCanUseUnicode</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789302"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789302"><span class="hs-identifier hs-var">can_use_unicode</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-692"></span><span>   </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintUnicodeSyntax"><span class="hs-identifier hs-var hs-var">sdocPrintUnicodeSyntax</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789301"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789301"><span class="hs-identifier hs-var">print_unicode_syntax</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-693"></span><span>    </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789302"><span class="hs-identifier hs-var">can_use_unicode</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680789301"><span class="hs-identifier hs-var">print_unicode_syntax</span></a></span><span>
</span><span id="line-694"></span><span>    </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789304"><span class="hs-identifier hs-var">unicode</span></a></span><span>
</span><span id="line-695"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789303"><span class="hs-identifier hs-var">plain</span></a></span><span>
</span><span id="line-696"></span><span>
</span><span id="line-697"></span><span class="annot"><a href="GHC.Utils.Outputable.html#unicode"><span class="hs-identifier hs-type">unicode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-698"></span><span id="unicode"><span class="annot"><span class="annottext">unicode :: SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#unicode"><span class="hs-identifier hs-var hs-var">unicode</span></a></span></span><span> </span><span id="local-6989586621680789299"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789299"><span class="hs-identifier hs-var">unicode</span></a></span></span><span> </span><span id="local-6989586621680789298"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789298"><span class="hs-identifier hs-var">plain</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocCanUseUnicode"><span class="hs-identifier hs-var hs-var">sdocCanUseUnicode</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-699"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789299"><span class="hs-identifier hs-var">unicode</span></a></span><span>
</span><span id="line-700"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789298"><span class="hs-identifier hs-var">plain</span></a></span><span>
</span><span id="line-701"></span><span>
</span><span id="line-702"></span><span class="annot"><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-type">nest</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-703"></span><span class="hs-comment">-- ^ Indent 'SDoc' some specified amount</span><span>
</span><span id="line-704"></span><span class="annot"><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-type">(&lt;&gt;)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-705"></span><span class="hs-comment">-- ^ Join two 'SDoc' together horizontally without a gap</span><span>
</span><span id="line-706"></span><span class="annot"><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-type">(&lt;+&gt;)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-707"></span><span class="hs-comment">-- ^ Join two 'SDoc' together horizontally with a gap between them</span><span>
</span><span id="line-708"></span><span class="annot"><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-type">($$)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-709"></span><span class="hs-comment">-- ^ Join two 'SDoc' together vertically; if there is</span><span>
</span><span id="line-710"></span><span class="hs-comment">-- no vertical overlap it &quot;dovetails&quot; the two onto one line</span><span>
</span><span id="line-711"></span><span class="annot"><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-type">($+$)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-712"></span><span class="hs-comment">-- ^ Join two 'SDoc' together vertically</span><span>
</span><span id="line-713"></span><span>
</span><span id="line-714"></span><span id="nest"><span class="annot"><span class="annottext">nest :: Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var hs-var">nest</span></a></span></span><span> </span><span id="local-6989586621680789297"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789297"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621680789296"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789296"><span class="hs-identifier hs-var">d</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#nest"><span class="hs-identifier hs-var">Pretty.nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789297"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">(Doc -&gt; Doc) -&gt; (SDocContext -&gt; Doc) -&gt; SDocContext -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789296"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-715"></span><span id="%3C%3E"><span class="annot"><span class="annottext">&lt;&gt; :: SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var hs-var">(&lt;&gt;)</span></a></span></span><span> </span><span id="local-6989586621680789294"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789294"><span class="hs-identifier hs-var">d1</span></a></span></span><span> </span><span id="local-6989586621680789293"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789293"><span class="hs-identifier hs-var">d2</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789292"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789292"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#%3C%3E"><span class="hs-operator hs-var">(Pretty.&lt;&gt;)</span></a></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789294"><span class="hs-identifier hs-var">d1</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789292"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789293"><span class="hs-identifier hs-var">d2</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789292"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-716"></span><span id="%3C%2B%3E"><span class="annot"><span class="annottext">&lt;+&gt; :: SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var hs-var">(&lt;+&gt;)</span></a></span></span><span> </span><span id="local-6989586621680789290"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789290"><span class="hs-identifier hs-var">d1</span></a></span></span><span> </span><span id="local-6989586621680789289"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789289"><span class="hs-identifier hs-var">d2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789288"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789288"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#%3C%2B%3E"><span class="hs-operator hs-var">(Pretty.&lt;+&gt;)</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789290"><span class="hs-identifier hs-var">d1</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789288"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789289"><span class="hs-identifier hs-var">d2</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789288"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-717"></span><span id="%24%24"><span class="annot"><span class="annottext">$$ :: SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var hs-var">($$)</span></a></span></span><span> </span><span id="local-6989586621680789286"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789286"><span class="hs-identifier hs-var">d1</span></a></span></span><span> </span><span id="local-6989586621680789285"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789285"><span class="hs-identifier hs-var">d2</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789284"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789284"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#%24%24"><span class="hs-operator hs-var">(Pretty.$$)</span></a></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789286"><span class="hs-identifier hs-var">d1</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789284"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789285"><span class="hs-identifier hs-var">d2</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789284"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-718"></span><span id="%24%2B%24"><span class="annot"><span class="annottext">$+$ :: SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var hs-var">($+$)</span></a></span></span><span> </span><span id="local-6989586621680789282"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789282"><span class="hs-identifier hs-var">d1</span></a></span></span><span> </span><span id="local-6989586621680789281"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789281"><span class="hs-identifier hs-var">d2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789280"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789280"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#%24%2B%24"><span class="hs-operator hs-var">(Pretty.$+$)</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789282"><span class="hs-identifier hs-var">d1</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789280"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789281"><span class="hs-identifier hs-var">d2</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789280"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-719"></span><span>
</span><span id="line-720"></span><span class="annot"><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-type">hcat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-721"></span><span class="hs-comment">-- ^ Concatenate 'SDoc' horizontally</span><span>
</span><span id="line-722"></span><span class="annot"><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-type">hsep</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-723"></span><span class="hs-comment">-- ^ Concatenate 'SDoc' horizontally with a space between each one</span><span>
</span><span id="line-724"></span><span class="annot"><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-type">vcat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-725"></span><span class="hs-comment">-- ^ Concatenate 'SDoc' vertically with dovetailing</span><span>
</span><span id="line-726"></span><span class="annot"><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-727"></span><span class="hs-comment">-- ^ Separate: is either like 'hsep' or like 'vcat', depending on what fits</span><span>
</span><span id="line-728"></span><span class="annot"><a href="GHC.Utils.Outputable.html#cat"><span class="hs-identifier hs-type">cat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-729"></span><span class="hs-comment">-- ^ Catenate: is either like 'hcat' or like 'vcat', depending on what fits</span><span>
</span><span id="line-730"></span><span class="annot"><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-type">fsep</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-731"></span><span class="hs-comment">-- ^ A paragraph-fill combinator. It's much like sep, only it</span><span>
</span><span id="line-732"></span><span class="hs-comment">-- keeps fitting things on one line until it can't fit any more.</span><span>
</span><span id="line-733"></span><span class="annot"><a href="GHC.Utils.Outputable.html#fcat"><span class="hs-identifier hs-type">fcat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-734"></span><span class="hs-comment">-- ^ This behaves like 'fsep', but it uses '&lt;&gt;' for horizontal conposition rather than '&lt;+&gt;'</span><span>
</span><span id="line-735"></span><span>
</span><span id="line-736"></span><span>
</span><span id="line-737"></span><span id="hcat"><span class="annot"><span class="annottext">hcat :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var hs-var">hcat</span></a></span></span><span> </span><span id="local-6989586621680789278"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789278"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789277"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789277"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#hcat"><span class="hs-identifier hs-var">Pretty.hcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789275"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789277"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680789275"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789275"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789278"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-738"></span><span id="hsep"><span class="annot"><span class="annottext">hsep :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var hs-var">hsep</span></a></span></span><span> </span><span id="local-6989586621680789274"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789274"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789273"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789273"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#hsep"><span class="hs-identifier hs-var">Pretty.hsep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789271"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789273"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680789271"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789271"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789274"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-739"></span><span id="vcat"><span class="annot"><span class="annottext">vcat :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var hs-var">vcat</span></a></span></span><span> </span><span id="local-6989586621680789270"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789270"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789269"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789269"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#vcat"><span class="hs-identifier hs-var">Pretty.vcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789267"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789269"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680789267"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789267"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789270"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-740"></span><span id="sep"><span class="annot"><span class="annottext">sep :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var hs-var">sep</span></a></span></span><span> </span><span id="local-6989586621680789266"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789266"><span class="hs-identifier hs-var">ds</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789265"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789265"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#sep"><span class="hs-identifier hs-var">Pretty.sep</span></a></span><span>  </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789263"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789265"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680789263"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789263"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789266"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-741"></span><span id="cat"><span class="annot"><span class="annottext">cat :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#cat"><span class="hs-identifier hs-var hs-var">cat</span></a></span></span><span> </span><span id="local-6989586621680789262"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789262"><span class="hs-identifier hs-var">ds</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789261"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789261"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#cat"><span class="hs-identifier hs-var">Pretty.cat</span></a></span><span>  </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789259"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789261"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680789259"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789259"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789262"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-742"></span><span id="fsep"><span class="annot"><span class="annottext">fsep :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var hs-var">fsep</span></a></span></span><span> </span><span id="local-6989586621680789258"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789258"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789257"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789257"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#fsep"><span class="hs-identifier hs-var">Pretty.fsep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789255"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789257"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680789255"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789255"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789258"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-743"></span><span id="fcat"><span class="annot"><span class="annottext">fcat :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fcat"><span class="hs-identifier hs-var hs-var">fcat</span></a></span></span><span> </span><span id="local-6989586621680789254"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789254"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789253"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789253"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#fcat"><span class="hs-identifier hs-var">Pretty.fcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789251"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789253"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680789251"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789251"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789254"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-744"></span><span>
</span><span id="line-745"></span><span class="annot"><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-type">hang</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>  </span><span class="hs-comment">-- ^ The header</span><span>
</span><span id="line-746"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>  </span><span class="hs-comment">-- ^ Amount to indent the hung body</span><span>
</span><span id="line-747"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-comment">-- ^ The hung body, indented and placed below the header</span><span>
</span><span id="line-748"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-749"></span><span id="hang"><span class="annot"><span class="annottext">hang :: SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var hs-var">hang</span></a></span></span><span> </span><span id="local-6989586621680789250"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789250"><span class="hs-identifier hs-var">d1</span></a></span></span><span> </span><span id="local-6989586621680789249"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789249"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621680789248"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789248"><span class="hs-identifier hs-var">d2</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789247"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789247"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Int -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#hang"><span class="hs-identifier hs-var">Pretty.hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789250"><span class="hs-identifier hs-var">d1</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789247"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789249"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789248"><span class="hs-identifier hs-var">d2</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789247"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-750"></span><span>
</span><span id="line-751"></span><span class="hs-comment">-- | This behaves like 'hang', but does not indent the second document</span><span>
</span><span id="line-752"></span><span class="hs-comment">-- when the header is empty.</span><span>
</span><span id="line-753"></span><span class="annot"><a href="GHC.Utils.Outputable.html#hangNotEmpty"><span class="hs-identifier hs-type">hangNotEmpty</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-754"></span><span id="hangNotEmpty"><span class="annot"><span class="annottext">hangNotEmpty :: SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hangNotEmpty"><span class="hs-identifier hs-var hs-var">hangNotEmpty</span></a></span></span><span> </span><span id="local-6989586621680789245"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789245"><span class="hs-identifier hs-var">d1</span></a></span></span><span> </span><span id="local-6989586621680789244"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789244"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621680789243"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789243"><span class="hs-identifier hs-var">d2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-755"></span><span>    </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680789242"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789242"><span class="hs-identifier hs-var">sty</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Int -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#hangNotEmpty"><span class="hs-identifier hs-var">Pretty.hangNotEmpty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789245"><span class="hs-identifier hs-var">d1</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789242"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789244"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789243"><span class="hs-identifier hs-var">d2</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789242"><span class="hs-identifier hs-var">sty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-756"></span><span>
</span><span id="line-757"></span><span class="annot"><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-type">punctuate</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>   </span><span class="hs-comment">-- ^ The punctuation</span><span>
</span><span id="line-758"></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-comment">-- ^ The list that will have punctuation added between every adjacent pair of elements</span><span>
</span><span id="line-759"></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-comment">-- ^ Punctuated list</span><span>
</span><span id="line-760"></span><span id="punctuate"><span class="annot"><span class="annottext">punctuate :: SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var hs-var">punctuate</span></a></span></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-761"></span><span class="annot"><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span id="local-6989586621680789240"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789240"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789239"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789239"><span class="hs-identifier hs-var">d</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680789238"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789238"><span class="hs-identifier hs-var">ds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="#local-6989586621680789237"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789239"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789238"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-762"></span><span>                   </span><span class="hs-keyword">where</span><span>
</span><span id="line-763"></span><span>                     </span><span id="local-6989586621680789237"><span class="annot"><span class="annottext">go :: SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="#local-6989586621680789237"><span class="hs-identifier hs-var hs-var">go</span></a></span></span><span> </span><span id="local-6989586621680789236"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789236"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789236"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-764"></span><span>                     </span><span class="annot"><a href="#local-6989586621680789237"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span id="local-6989586621680789235"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789235"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789234"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789234"><span class="hs-identifier hs-var">e</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680789233"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789233"><span class="hs-identifier hs-var">es</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789235"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789240"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="#local-6989586621680789237"><span class="hs-identifier hs-var">go</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789234"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680789233"><span class="hs-identifier hs-var">es</span></a></span><span>
</span><span id="line-765"></span><span>
</span><span id="line-766"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ppWhen"><span class="hs-identifier hs-type">ppWhen</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppUnless"><span class="hs-identifier hs-type">ppUnless</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-767"></span><span id="ppWhen"><span class="annot"><span class="annottext">ppWhen :: Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppWhen"><span class="hs-identifier hs-var hs-var">ppWhen</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span id="local-6989586621680789232"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789232"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789232"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-768"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ppWhen"><span class="hs-identifier hs-var">ppWhen</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-769"></span><span>
</span><span id="line-770"></span><span id="ppUnless"><span class="annot"><span class="annottext">ppUnless :: Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppUnless"><span class="hs-identifier hs-var hs-var">ppUnless</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="annot"><span class="annottext">SDoc
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-771"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ppUnless"><span class="hs-identifier hs-var">ppUnless</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span id="local-6989586621680789231"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789231"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789231"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-772"></span><span>
</span><span id="line-773"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ppWhenOption"><span class="hs-identifier hs-type">ppWhenOption</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-774"></span><span id="ppWhenOption"><span class="annot"><span class="annottext">ppWhenOption :: (SDocContext -&gt; Bool) -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppWhenOption"><span class="hs-identifier hs-var hs-var">ppWhenOption</span></a></span></span><span> </span><span id="local-6989586621680789230"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="#local-6989586621680789230"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680789229"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789229"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="#local-6989586621680789230"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-775"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789229"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-776"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-777"></span><span>
</span><span id="line-778"></span><span class="annot"><a href="GHC.Utils.Outputable.html#ppUnlessOption"><span class="hs-identifier hs-type">ppUnlessOption</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDocContext"><span class="hs-identifier hs-type">SDocContext</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-779"></span><span id="ppUnlessOption"><span class="annot"><span class="annottext">ppUnlessOption :: (SDocContext -&gt; Bool) -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppUnlessOption"><span class="hs-identifier hs-var hs-var">ppUnlessOption</span></a></span></span><span> </span><span id="local-6989586621680789228"><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="#local-6989586621680789228"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680789227"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789227"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="#local-6989586621680789228"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-780"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-781"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789227"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-782"></span><span>
</span><span id="line-783"></span><span class="hs-comment">-- | Apply the given colour\/style for the argument.</span><span>
</span><span id="line-784"></span><span class="hs-comment">--</span><span>
</span><span id="line-785"></span><span class="hs-comment">-- Only takes effect if colours are enabled.</span><span>
</span><span id="line-786"></span><span class="annot"><a href="GHC.Utils.Outputable.html#coloured"><span class="hs-identifier hs-type">coloured</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Ppr.Colour.html#PprColour"><span class="hs-identifier hs-type">Col.PprColour</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-787"></span><span id="coloured"><span class="annot"><span class="annottext">coloured :: PprColour -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#coloured"><span class="hs-identifier hs-var hs-var">coloured</span></a></span></span><span> </span><span id="local-6989586621680789226"><span class="annot"><span class="annottext">PprColour
</span><a href="#local-6989586621680789226"><span class="hs-identifier hs-var">col</span></a></span></span><span> </span><span id="local-6989586621680789225"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789225"><span class="hs-identifier hs-var">sdoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocShouldUseColor"><span class="hs-identifier hs-var hs-var">sdocShouldUseColor</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-788"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Doc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-var">SDoc</span></a></span><span> </span><span class="annot"><span class="annottext">((SDocContext -&gt; Doc) -&gt; SDoc) -&gt; (SDocContext -&gt; Doc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-789"></span><span>      </span><span id="local-6989586621680789224"><span class="annot"><span class="annottext">ctx :: SDocContext
</span><a href="#local-6989586621680789224"><span class="hs-identifier hs-var">ctx</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDC"><span class="hs-identifier hs-type">SDC</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">sdocLastColour :: SDocContext -&gt; PprColour
</span><a href="GHC.Utils.Outputable.html#sdocLastColour"><span class="hs-identifier hs-var">sdocLastColour</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680789223"><span class="annot"><span class="annottext">PprColour
</span><a href="#local-6989586621680789223"><span class="hs-identifier hs-var">lastCol</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">sdocStyle :: SDocContext -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#sdocStyle"><span class="hs-identifier hs-var">sdocStyle</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#PprUser"><span class="hs-identifier hs-type">PprUser</span></a></span><span> </span><span class="annot"><span class="annottext">PrintUnqualified
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Depth
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Coloured
</span><a href="GHC.Utils.Outputable.html#Coloured"><span class="hs-identifier hs-var">Coloured</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-790"></span><span>         </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680789220"><span class="annot"><span class="annottext">ctx' :: SDocContext
</span><a href="#local-6989586621680789220"><span class="hs-identifier hs-var hs-var">ctx'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789224"><span class="hs-identifier hs-var">ctx</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">sdocLastColour :: PprColour
</span><a href="GHC.Utils.Outputable.html#sdocLastColour"><span class="hs-identifier hs-var">sdocLastColour</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PprColour
</span><a href="#local-6989586621680789223"><span class="hs-identifier hs-var">lastCol</span></a></span><span> </span><span class="annot"><span class="annottext">PprColour -&gt; PprColour -&gt; PprColour
forall a. Monoid a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Base.html#mappend"><span class="hs-operator hs-var">`mappend`</span></a></span><span> </span><span class="annot"><span class="annottext">PprColour
</span><a href="#local-6989586621680789226"><span class="hs-identifier hs-var">col</span></a></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-keyword">in</span><span>
</span><span id="line-791"></span><span>         </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#zeroWidthText"><span class="hs-identifier hs-var">Pretty.zeroWidthText</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprColour -&gt; String
</span><a href="GHC.Utils.Ppr.Colour.html#renderColour"><span class="hs-identifier hs-var hs-var">Col.renderColour</span></a></span><span> </span><span class="annot"><span class="annottext">PprColour
</span><a href="#local-6989586621680789226"><span class="hs-identifier hs-var">col</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-792"></span><span>           </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#%3C%3E"><span class="hs-operator hs-var">Pretty.&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789225"><span class="hs-identifier hs-var">sdoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789220"><span class="hs-identifier hs-var">ctx'</span></a></span><span>
</span><span id="line-793"></span><span>           </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#%3C%3E"><span class="hs-operator hs-var">Pretty.&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="GHC.Utils.Ppr.html#zeroWidthText"><span class="hs-identifier hs-var">Pretty.zeroWidthText</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PprColour -&gt; String
</span><a href="GHC.Utils.Ppr.Colour.html#renderColourAfresh"><span class="hs-identifier hs-var">Col.renderColourAfresh</span></a></span><span> </span><span class="annot"><span class="annottext">PprColour
</span><a href="#local-6989586621680789223"><span class="hs-identifier hs-var">lastCol</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-794"></span><span>      </span><span id="local-6989586621680789216"><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789216"><span class="hs-identifier hs-var">ctx</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDocContext -&gt; Doc
</span><a href="GHC.Utils.Outputable.html#runSDoc"><span class="hs-identifier hs-var hs-var">runSDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789225"><span class="hs-identifier hs-var">sdoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext
</span><a href="#local-6989586621680789216"><span class="hs-identifier hs-var">ctx</span></a></span><span>
</span><span id="line-795"></span><span>   </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680789225"><span class="hs-identifier hs-var">sdoc</span></a></span><span>
</span><span id="line-796"></span><span>
</span><span id="line-797"></span><span class="annot"><a href="GHC.Utils.Outputable.html#keyword"><span class="hs-identifier hs-type">keyword</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-798"></span><span id="keyword"><span class="annot"><span class="annottext">keyword :: SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#keyword"><span class="hs-identifier hs-var hs-var">keyword</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PprColour -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#coloured"><span class="hs-identifier hs-var">coloured</span></a></span><span> </span><span class="annot"><span class="annottext">PprColour
</span><a href="GHC.Utils.Ppr.Colour.html#colBold"><span class="hs-identifier hs-var">Col.colBold</span></a></span><span>
</span><span id="line-799"></span><span>
</span><span id="line-800"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[Outputable-class]{The @Outputable@ class}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-807"></span><span>
</span><span id="line-808"></span><span class="hs-comment">-- | Class designating that some type has an 'SDoc' representation</span><span>
</span><span id="line-809"></span><span class="hs-keyword">class</span><span> </span><span id="Outputable"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-var">Outputable</span></a></span></span><span> </span><span id="local-6989586621680790125"><span class="annot"><a href="#local-6989586621680790125"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-810"></span><span>        </span><span id="ppr"><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-type">ppr</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621680790125"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-811"></span><span>        </span><span id="pprPrec"><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrec"><span class="hs-identifier hs-type">pprPrec</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Real.html#Rational"><span class="hs-identifier hs-type">Rational</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680790125"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-812"></span><span>                </span><span class="hs-comment">-- 0 binds least tightly</span><span>
</span><span id="line-813"></span><span>                </span><span class="hs-comment">-- We use Rational because there is always a</span><span>
</span><span id="line-814"></span><span>                </span><span class="hs-comment">-- Rational between any other two Rationals</span><span>
</span><span id="line-815"></span><span>
</span><span id="line-816"></span><span>        </span><span id="local-6989586621680789212"><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var">ppr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Rational -&gt; a -&gt; SDoc
forall a. Outputable a =&gt; Rational -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrec"><span class="hs-identifier hs-var">pprPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><span class="hs-number">0</span></span></span><span>
</span><span id="line-817"></span><span>        </span><span id="local-6989586621680789206"><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrec"><span class="hs-identifier hs-var hs-var">pprPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span></span><span>
</span><span id="line-818"></span><span>
</span><span id="line-819"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789202"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-820"></span><span>    </span><span id="local-6989586621680789201"><span class="annot"><span class="annottext">ppr :: Char -&gt; SDoc
</span><a href="#local-6989586621680789201"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789200"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680789200"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680789200"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-821"></span><span>
</span><span id="line-822"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789197"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-823"></span><span>    </span><span id="local-6989586621680789196"><span class="annot"><span class="annottext">ppr :: Bool -&gt; SDoc
</span><a href="#local-6989586621680789196"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;True&quot;</span></span><span>
</span><span id="line-824"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;False&quot;</span></span><span>
</span><span id="line-825"></span><span>
</span><span id="line-826"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789193"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ordering</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-827"></span><span>    </span><span id="local-6989586621680789192"><span class="annot"><span class="annottext">ppr :: Ordering -&gt; SDoc
</span><a href="#local-6989586621680789192"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">Ordering
</span><span class="hs-identifier hs-var">LT</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;LT&quot;</span></span><span>
</span><span id="line-828"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Ordering
</span><span class="hs-identifier hs-var">EQ</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;EQ&quot;</span></span><span>
</span><span id="line-829"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Ordering
</span><span class="hs-identifier hs-var">GT</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;GT&quot;</span></span><span>
</span><span id="line-830"></span><span>
</span><span id="line-831"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789189"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Int.html#Int32"><span class="hs-identifier hs-type">Int32</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-832"></span><span>   </span><span id="local-6989586621680789184"><span class="annot"><span class="annottext">ppr :: Int32 -&gt; SDoc
</span><a href="#local-6989586621680789184"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789183"><span class="annot"><span class="annottext">Int32
</span><a href="#local-6989586621680789183"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">(Integer -&gt; SDoc) -&gt; Integer -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Int32 -&gt; Integer
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int32
</span><a href="#local-6989586621680789183"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-833"></span><span>
</span><span id="line-834"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789180"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Int.html#Int64"><span class="hs-identifier hs-type">Int64</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-835"></span><span>   </span><span id="local-6989586621680789176"><span class="annot"><span class="annottext">ppr :: Int64 -&gt; SDoc
</span><a href="#local-6989586621680789176"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789175"><span class="annot"><span class="annottext">Int64
</span><a href="#local-6989586621680789175"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">(Integer -&gt; SDoc) -&gt; Integer -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Int64 -&gt; Integer
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int64
</span><a href="#local-6989586621680789175"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-836"></span><span>
</span><span id="line-837"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789172"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-838"></span><span>    </span><span id="local-6989586621680789171"><span class="annot"><span class="annottext">ppr :: Int -&gt; SDoc
</span><a href="#local-6989586621680789171"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789170"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789170"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680789170"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-839"></span><span>
</span><span id="line-840"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789167"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Integer</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-841"></span><span>    </span><span id="local-6989586621680789166"><span class="annot"><span class="annottext">ppr :: Integer -&gt; SDoc
</span><a href="#local-6989586621680789166"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789165"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680789165"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680789165"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-842"></span><span>
</span><span id="line-843"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789162"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word16"><span class="hs-identifier hs-type">Word16</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-844"></span><span>    </span><span id="local-6989586621680789158"><span class="annot"><span class="annottext">ppr :: Word16 -&gt; SDoc
</span><a href="#local-6989586621680789158"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789157"><span class="annot"><span class="annottext">Word16
</span><a href="#local-6989586621680789157"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">(Integer -&gt; SDoc) -&gt; Integer -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Word16 -&gt; Integer
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word16
</span><a href="#local-6989586621680789157"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-845"></span><span>
</span><span id="line-846"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789154"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word32"><span class="hs-identifier hs-type">Word32</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-847"></span><span>    </span><span id="local-6989586621680789150"><span class="annot"><span class="annottext">ppr :: Word32 -&gt; SDoc
</span><a href="#local-6989586621680789150"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789149"><span class="annot"><span class="annottext">Word32
</span><a href="#local-6989586621680789149"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">(Integer -&gt; SDoc) -&gt; Integer -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Word32 -&gt; Integer
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word32
</span><a href="#local-6989586621680789149"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-848"></span><span>
</span><span id="line-849"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789146"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word64"><span class="hs-identifier hs-type">Word64</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-850"></span><span>    </span><span id="local-6989586621680789142"><span class="annot"><span class="annottext">ppr :: Word64 -&gt; SDoc
</span><a href="#local-6989586621680789142"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789141"><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680789141"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">(Integer -&gt; SDoc) -&gt; Integer -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Word64 -&gt; Integer
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680789141"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-851"></span><span>
</span><span id="line-852"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789138"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Word</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-853"></span><span>    </span><span id="local-6989586621680789134"><span class="annot"><span class="annottext">ppr :: Word -&gt; SDoc
</span><a href="#local-6989586621680789134"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789133"><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621680789133"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">(Integer -&gt; SDoc) -&gt; Integer -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; Integer
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621680789133"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-854"></span><span>
</span><span id="line-855"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789130"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Float</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-856"></span><span>    </span><span id="local-6989586621680789129"><span class="annot"><span class="annottext">ppr :: Float -&gt; SDoc
</span><a href="#local-6989586621680789129"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789128"><span class="annot"><span class="annottext">Float
</span><a href="#local-6989586621680789128"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Float -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#float"><span class="hs-identifier hs-var">float</span></a></span><span> </span><span class="annot"><span class="annottext">Float
</span><a href="#local-6989586621680789128"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-857"></span><span>
</span><span id="line-858"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789125"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Double</span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-859"></span><span>    </span><span id="local-6989586621680789124"><span class="annot"><span class="annottext">ppr :: Double -&gt; SDoc
</span><a href="#local-6989586621680789124"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789123"><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621680789123"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Double -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#double"><span class="hs-identifier hs-var">double</span></a></span><span> </span><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621680789123"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-860"></span><span>
</span><span id="line-861"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789120"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-862"></span><span>    </span><span id="local-6989586621680789119"><span class="annot"><span class="annottext">ppr :: () -&gt; SDoc
</span><a href="#local-6989586621680789119"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;()&quot;</span></span><span>
</span><span id="line-863"></span><span>
</span><span id="line-864"></span><span id="local-6989586621680790077"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789116"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790077"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680790077"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-865"></span><span>    </span><span id="local-6989586621680789114"><span class="annot"><span class="annottext">ppr :: [a] -&gt; SDoc
</span><a href="#local-6989586621680789114"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789113"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680789113"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680789113"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span></span><span>
</span><span id="line-866"></span><span>
</span><span id="line-867"></span><span id="local-6989586621680790074"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789110"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790074"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#NonEmpty"><span class="hs-identifier hs-type">NonEmpty</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790074"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-868"></span><span>    </span><span id="local-6989586621680789108"><span class="annot"><span class="annottext">ppr :: NonEmpty a -&gt; SDoc
</span><a href="#local-6989586621680789108"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">([a] -&gt; SDoc) -&gt; (NonEmpty a -&gt; [a]) -&gt; NonEmpty a -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">NonEmpty a -&gt; [a]
forall a. NonEmpty a -&gt; [a]
</span><a href="../../base/src/Data.List.NonEmpty.html#toList"><span class="hs-identifier hs-var">NEL.toList</span></a></span></span><span>
</span><span id="line-869"></span><span>
</span><span id="line-870"></span><span id="local-6989586621680790072"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789104"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790072"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier hs-type">Set</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790072"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-871"></span><span>    </span><span id="local-6989586621680789102"><span class="annot"><span class="annottext">ppr :: Set a -&gt; SDoc
</span><a href="#local-6989586621680789102"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789101"><span class="annot"><span class="annottext">Set a
</span><a href="#local-6989586621680789101"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Set a -&gt; [a]
forall a. Set a -&gt; [a]
</span><a href="../../containers/src/Data.Set.Internal.html#toList"><span class="hs-identifier hs-var">Set.toList</span></a></span><span> </span><span class="annot"><span class="annottext">Set a
</span><a href="#local-6989586621680789101"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span></span><span>
</span><span id="line-872"></span><span>
</span><span id="line-873"></span><span id="local-6989586621680790069"><span id="local-6989586621680790070"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789097"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790070"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790069"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680790070"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790069"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-874"></span><span>    </span><span id="local-6989586621680789094"><span class="annot"><span class="annottext">ppr :: (a, b) -&gt; SDoc
</span><a href="#local-6989586621680789094"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789093"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789093"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789092"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789092"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789093"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789092"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-875"></span><span>
</span><span id="line-876"></span><span id="local-6989586621680790068"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789089"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790068"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790068"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-877"></span><span>    </span><span id="local-6989586621680789087"><span class="annot"><span class="annottext">ppr :: Maybe a -&gt; SDoc
</span><a href="#local-6989586621680789087"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Nothing&quot;</span></span><span>
</span><span id="line-878"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680789086"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789086"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Just&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789086"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-879"></span><span>
</span><span id="line-880"></span><span id="local-6989586621680790066"><span id="local-6989586621680790067"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789083"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790067"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790066"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790067"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790066"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-881"></span><span>    </span><span id="local-6989586621680789080"><span class="annot"><span class="annottext">ppr :: Either a b -&gt; SDoc
</span><a href="#local-6989586621680789080"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span id="local-6989586621680789079"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789079"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Left&quot;</span></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789079"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-882"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621680789078"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789078"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Right&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789078"><span class="hs-identifier hs-var">y</span></a></span></span></span><span>
</span><span id="line-883"></span><span>
</span><span id="line-884"></span><span class="hs-comment">-- ToDo: may not be used</span><span>
</span><span id="line-885"></span><span id="local-6989586621680790063"><span id="local-6989586621680790064"><span id="local-6989586621680790065"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789075"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790065"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790064"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790063"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680790065"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790064"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790063"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-886"></span><span>    </span><span id="local-6989586621680789071"><span class="annot"><span class="annottext">ppr :: (a, b, c) -&gt; SDoc
</span><a href="#local-6989586621680789071"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789070"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789070"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789069"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789069"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789068"><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789068"><span class="hs-identifier hs-var">z</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-887"></span><span>      </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789070"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-888"></span><span>                   </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789069"><span class="hs-identifier hs-var">y</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-889"></span><span>                   </span><span class="annot"><span class="annottext">c -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789068"><span class="hs-identifier hs-var">z</span></a></span><span> </span><span class="hs-special">]</span><span class="hs-special">)</span></span></span></span><span>
</span><span id="line-890"></span><span>
</span><span id="line-891"></span><span id="local-6989586621680790059"><span id="local-6989586621680790060"><span id="local-6989586621680790061"><span id="local-6989586621680790062"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789065"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790062"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790061"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790060"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790059"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span>
</span><span id="line-892"></span><span>         </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680790062"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790061"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790060"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790059"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-893"></span><span>    </span><span id="local-6989586621680789060"><span class="annot"><span class="annottext">ppr :: (a, b, c, d) -&gt; SDoc
</span><a href="#local-6989586621680789060"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789059"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789059"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789058"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789058"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789057"><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789057"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789056"><span class="annot"><span class="annottext">d
</span><a href="#local-6989586621680789056"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-894"></span><span>      </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789059"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-895"></span><span>                   </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789058"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-896"></span><span>                   </span><span class="annot"><span class="annottext">c -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789057"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-897"></span><span>                   </span><span class="annot"><span class="annottext">d -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">d
</span><a href="#local-6989586621680789056"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span></span></span></span></span><span>
</span><span id="line-898"></span><span>
</span><span id="line-899"></span><span id="local-6989586621680790054"><span id="local-6989586621680790055"><span id="local-6989586621680790056"><span id="local-6989586621680790057"><span id="local-6989586621680790058"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789053"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790058"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790057"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790056"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790055"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790054"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span>
</span><span id="line-900"></span><span>         </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680790058"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790057"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790056"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790055"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790054"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-901"></span><span>    </span><span id="local-6989586621680789047"><span class="annot"><span class="annottext">ppr :: (a, b, c, d, e) -&gt; SDoc
</span><a href="#local-6989586621680789047"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789046"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789046"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789045"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789045"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789044"><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789044"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789043"><span class="annot"><span class="annottext">d
</span><a href="#local-6989586621680789043"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789042"><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680789042"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-902"></span><span>      </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789046"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-903"></span><span>                   </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789045"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-904"></span><span>                   </span><span class="annot"><span class="annottext">c -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789044"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-905"></span><span>                   </span><span class="annot"><span class="annottext">d -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">d
</span><a href="#local-6989586621680789043"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-906"></span><span>                   </span><span class="annot"><span class="annottext">e -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680789042"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span></span></span></span></span></span><span>
</span><span id="line-907"></span><span>
</span><span id="line-908"></span><span id="local-6989586621680790048"><span id="local-6989586621680790049"><span id="local-6989586621680790050"><span id="local-6989586621680790051"><span id="local-6989586621680790052"><span id="local-6989586621680790053"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789039"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790053"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790052"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790051"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790050"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790049"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790048"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span>
</span><span id="line-909"></span><span>         </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680790053"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790052"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790051"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790050"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790049"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790048"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-910"></span><span>    </span><span id="local-6989586621680789032"><span class="annot"><span class="annottext">ppr :: (a, b, c, d, e, f) -&gt; SDoc
</span><a href="#local-6989586621680789032"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789031"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789031"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789030"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789030"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789029"><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789029"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789028"><span class="annot"><span class="annottext">d
</span><a href="#local-6989586621680789028"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789027"><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680789027"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789026"><span class="annot"><span class="annottext">f
</span><a href="#local-6989586621680789026"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-911"></span><span>      </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789031"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-912"></span><span>                   </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789030"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-913"></span><span>                   </span><span class="annot"><span class="annottext">c -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789029"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-914"></span><span>                   </span><span class="annot"><span class="annottext">d -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">d
</span><a href="#local-6989586621680789028"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-915"></span><span>                   </span><span class="annot"><span class="annottext">e -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680789027"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-916"></span><span>                   </span><span class="annot"><span class="annottext">f -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">f
</span><a href="#local-6989586621680789026"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span></span></span></span></span></span></span><span>
</span><span id="line-917"></span><span>
</span><span id="line-918"></span><span id="local-6989586621680790041"><span id="local-6989586621680790042"><span id="local-6989586621680790043"><span id="local-6989586621680790044"><span id="local-6989586621680790045"><span id="local-6989586621680790046"><span id="local-6989586621680790047"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789023"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790047"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790046"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790045"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790044"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790043"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790042"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790041"><span class="hs-identifier hs-type">g</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span>
</span><span id="line-919"></span><span>         </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680790047"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790046"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790045"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790044"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790043"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790042"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621680790041"><span class="hs-identifier hs-type">g</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-920"></span><span>    </span><span id="local-6989586621680789015"><span class="annot"><span class="annottext">ppr :: (a, b, c, d, e, f, g) -&gt; SDoc
</span><a href="#local-6989586621680789015"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680789014"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789014"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789013"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789013"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789012"><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789012"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789011"><span class="annot"><span class="annottext">d
</span><a href="#local-6989586621680789011"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789010"><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680789010"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789009"><span class="annot"><span class="annottext">f
</span><a href="#local-6989586621680789009"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680789008"><span class="annot"><span class="annottext">g
</span><a href="#local-6989586621680789008"><span class="hs-identifier hs-var">g</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-921"></span><span>      </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680789014"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-922"></span><span>                   </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680789013"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-923"></span><span>                   </span><span class="annot"><span class="annottext">c -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680789012"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-924"></span><span>                   </span><span class="annot"><span class="annottext">d -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">d
</span><a href="#local-6989586621680789011"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-925"></span><span>                   </span><span class="annot"><span class="annottext">e -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680789010"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-926"></span><span>                   </span><span class="annot"><span class="annottext">f -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">f
</span><a href="#local-6989586621680789009"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-927"></span><span>                   </span><span class="annot"><span class="annottext">g -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">g
</span><a href="#local-6989586621680789008"><span class="hs-identifier hs-var">g</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span></span></span></span></span></span></span></span><span>
</span><span id="line-928"></span><span>
</span><span id="line-929"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789005"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-930"></span><span>    </span><span id="local-6989586621680789004"><span class="annot"><span class="annottext">ppr :: FastString -&gt; SDoc
</span><a href="#local-6989586621680789004"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680789003"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680789003"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680789003"><span class="hs-identifier hs-var">fs</span></a></span><span>           </span><span class="hs-comment">-- Prints an unadorned string,</span><span>
</span><span id="line-931"></span><span>                                </span><span class="hs-comment">-- no double quotes or anything</span><span>
</span><span id="line-932"></span><span>
</span><span id="line-933"></span><span id="local-6989586621680790039"><span id="local-6989586621680790040"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680789000"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790040"><span class="hs-identifier hs-type">key</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790039"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Map.Internal.html#Map"><span class="hs-identifier hs-type">M.Map</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790040"><span class="hs-identifier hs-type">key</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790039"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-934"></span><span>    </span><span id="local-6989586621680788997"><span class="annot"><span class="annottext">ppr :: Map key elt -&gt; SDoc
</span><a href="#local-6989586621680788997"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680788996"><span class="annot"><span class="annottext">Map key elt
</span><a href="#local-6989586621680788996"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(key, elt)] -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Map key elt -&gt; [(key, elt)]
forall k a. Map k a -&gt; [(k, a)]
</span><a href="../../containers/src/Data.Map.Internal.html#toList"><span class="hs-identifier hs-var">M.toList</span></a></span><span> </span><span class="annot"><span class="annottext">Map key elt
</span><a href="#local-6989586621680788996"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span></span></span><span>
</span><span id="line-935"></span><span id="local-6989586621680790036"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680788992"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790036"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.IntMap.Internal.html#IntMap"><span class="hs-identifier hs-type">IM.IntMap</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790036"><span class="hs-identifier hs-type">elt</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-936"></span><span>    </span><span id="local-6989586621680788988"><span class="annot"><span class="annottext">ppr :: IntMap elt -&gt; SDoc
</span><a href="#local-6989586621680788988"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680788987"><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680788987"><span class="hs-identifier hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(Int, elt)] -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IntMap elt -&gt; [(Int, elt)]
forall a. IntMap a -&gt; [(Int, a)]
</span><a href="../../containers/src/Data.IntMap.Internal.html#toList"><span class="hs-identifier hs-var">IM.toList</span></a></span><span> </span><span class="annot"><span class="annottext">IntMap elt
</span><a href="#local-6989586621680788987"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-937"></span><span>
</span><span id="line-938"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680788983"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#Fingerprint"><span class="hs-identifier hs-type">Fingerprint</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-939"></span><span>    </span><span id="local-6989586621680788973"><span class="annot"><span class="annottext">ppr :: Fingerprint -&gt; SDoc
</span><a href="#local-6989586621680788973"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#Fingerprint"><span class="hs-identifier hs-type">Fingerprint</span></a></span><span> </span><span id="local-6989586621680788972"><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680788972"><span class="hs-identifier hs-var">w1</span></a></span></span><span> </span><span id="local-6989586621680788971"><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680788971"><span class="hs-identifier hs-var">w2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; Word64 -&gt; Word64 -&gt; String
forall r. PrintfType r =&gt; String -&gt; r
</span><a href="../../base/src/Text.Printf.html#printf"><span class="hs-identifier hs-var">printf</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%016x%016x&quot;</span></span><span> </span><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680788972"><span class="hs-identifier hs-var">w1</span></a></span><span> </span><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680788971"><span class="hs-identifier hs-var">w2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-940"></span><span>
</span><span id="line-941"></span><span id="local-6989586621680790027"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680788967"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790027"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Graph.html#SCC"><span class="hs-identifier hs-type">SCC</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790027"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-942"></span><span>   </span><span id="local-6989586621680788964"><span class="annot"><span class="annottext">ppr :: SCC a -&gt; SDoc
</span><a href="#local-6989586621680788964"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Graph.html#AcyclicSCC"><span class="hs-identifier hs-type">AcyclicSCC</span></a></span><span> </span><span id="local-6989586621680788962"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788962"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NONREC&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788962"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-943"></span><span>   </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Graph.html#CyclicSCC"><span class="hs-identifier hs-type">CyclicSCC</span></a></span><span> </span><span id="local-6989586621680788960"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788960"><span class="hs-identifier hs-var">vs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;REC&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788960"><span class="hs-identifier hs-var">vs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span></span><span>
</span><span id="line-944"></span><span>
</span><span id="line-945"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680788957"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Serialized.html#Serialized"><span class="hs-identifier hs-type">Serialized</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-946"></span><span>    </span><span id="local-6989586621680788953"><span class="annot"><span class="annottext">ppr :: Serialized -&gt; SDoc
</span><a href="#local-6989586621680788953"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../ghc-boot/src/GHC.Serialized.html#Serialized"><span class="hs-identifier hs-type">Serialized</span></a></span><span> </span><span id="local-6989586621680788951"><span class="annot"><span class="annottext">TypeRep
</span><a href="#local-6989586621680788951"><span class="hs-identifier hs-var">the_type</span></a></span></span><span> </span><span id="local-6989586621680788950"><span class="annot"><span class="annottext">[Word8]
</span><a href="#local-6989586621680788950"><span class="hs-identifier hs-var">bytes</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Word8] -&gt; Int
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
</span><a href="../../base/src/Data.Foldable.html#length"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[Word8]
</span><a href="#local-6989586621680788950"><span class="hs-identifier hs-var">bytes</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;of type&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TypeRep -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">TypeRep
</span><a href="#local-6989586621680788951"><span class="hs-identifier hs-var">the_type</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-947"></span><span>
</span><span id="line-948"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680788946"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="../../ghc-boot-th/src/GHC.LanguageExtensions.Type.html#Extension"><span class="hs-identifier hs-type">Extension</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-949"></span><span>    </span><span id="local-6989586621680788943"><span class="annot"><span class="annottext">ppr :: Extension -&gt; SDoc
</span><a href="#local-6989586621680788943"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; (Extension -&gt; String) -&gt; Extension -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Extension -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span>
</span><span id="line-950"></span><span>
</span><span id="line-951"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{The @OutputableBndr@ class}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-958"></span><span>
</span><span id="line-959"></span><span class="hs-comment">-- | 'BindingSite' is used to tell the thing that prints binder what</span><span>
</span><span id="line-960"></span><span class="hs-comment">-- language construct is binding the identifier.  This can be used</span><span>
</span><span id="line-961"></span><span class="hs-comment">-- to decide how much info to print.</span><span>
</span><span id="line-962"></span><span class="hs-comment">-- Also see Note [Binding-site specific printing] in &quot;GHC.Core.Ppr&quot;</span><span>
</span><span id="line-963"></span><span class="hs-keyword">data</span><span> </span><span id="BindingSite"><span class="annot"><a href="GHC.Utils.Outputable.html#BindingSite"><span class="hs-identifier hs-var">BindingSite</span></a></span></span><span>
</span><span id="line-964"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span id="LambdaBind"><span class="annot"><a href="GHC.Utils.Outputable.html#LambdaBind"><span class="hs-identifier hs-var">LambdaBind</span></a></span></span><span>  </span><span class="hs-comment">-- ^ The x in   (\x. e)</span><span>
</span><span id="line-965"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span id="CaseBind"><span class="annot"><a href="GHC.Utils.Outputable.html#CaseBind"><span class="hs-identifier hs-var">CaseBind</span></a></span></span><span>    </span><span class="hs-comment">-- ^ The x in   case scrut of x { (y,z) -&gt; ... }</span><span>
</span><span id="line-966"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span id="CasePatBind"><span class="annot"><a href="GHC.Utils.Outputable.html#CasePatBind"><span class="hs-identifier hs-var">CasePatBind</span></a></span></span><span> </span><span class="hs-comment">-- ^ The y,z in case scrut of x { (y,z) -&gt; ... }</span><span>
</span><span id="line-967"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span id="LetBind"><span class="annot"><a href="GHC.Utils.Outputable.html#LetBind"><span class="hs-identifier hs-var">LetBind</span></a></span></span><span>     </span><span class="hs-comment">-- ^ The x in   (let x = rhs in e)</span><span>
</span><span id="line-968"></span><span>
</span><span id="line-969"></span><span class="hs-comment">-- | When we print a binder, we often want to print its type too.</span><span>
</span><span id="line-970"></span><span class="hs-comment">-- The @OutputableBndr@ class encapsulates this idea.</span><span>
</span><span id="line-971"></span><span class="hs-keyword">class</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790024"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span id="OutputableBndr"><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-var">OutputableBndr</span></a></span></span><span> </span><span id="local-6989586621680790024"><span class="annot"><a href="#local-6989586621680790024"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-972"></span><span>   </span><span id="pprBndr"><span class="annot"><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-type">pprBndr</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#BindingSite"><span class="hs-identifier hs-type">BindingSite</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680790024"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-973"></span><span>   </span><span id="local-6989586621680788935"><span class="annot"><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var hs-var">pprBndr</span></a></span><span> </span><span id="local-6989586621680788932"><span class="annot"><span class="annottext">BindingSite
</span><a href="#local-6989586621680788932"><span class="hs-identifier hs-var">_b</span></a></span></span><span> </span><span id="local-6989586621680788931"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788931"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788931"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-974"></span><span>
</span><span id="line-975"></span><span>   </span><span id="pprPrefixOcc"><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrefixOcc"><span class="hs-identifier hs-type">pprPrefixOcc</span></a></span></span><span class="hs-special">,</span><span> </span><span id="pprInfixOcc"><span class="annot"><a href="GHC.Utils.Outputable.html#pprInfixOcc"><span class="hs-identifier hs-type">pprInfixOcc</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621680790024"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-976"></span><span>      </span><span class="hs-comment">-- Print an occurrence of the name, suitable either in the</span><span>
</span><span id="line-977"></span><span>      </span><span class="hs-comment">-- prefix position of an application, thus   (f a b) or  ((+) x)</span><span>
</span><span id="line-978"></span><span>      </span><span class="hs-comment">-- or infix position,                 thus   (a `f` b) or  (x + y)</span><span>
</span><span id="line-979"></span><span>
</span><span id="line-980"></span><span>   </span><span id="bndrIsJoin_maybe"><span class="annot"><a href="GHC.Utils.Outputable.html#bndrIsJoin_maybe"><span class="hs-identifier hs-type">bndrIsJoin_maybe</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621680790024"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-981"></span><span>   </span><span id="local-6989586621680788927"><span class="annot"><a href="GHC.Utils.Outputable.html#bndrIsJoin_maybe"><span class="hs-identifier hs-var hs-var">bndrIsJoin_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Int
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span></span><span>
</span><span id="line-982"></span><span>      </span><span class="hs-comment">-- When pretty-printing we sometimes want to find</span><span>
</span><span id="line-983"></span><span>      </span><span class="hs-comment">-- whether the binder is a join point.  You might think</span><span>
</span><span id="line-984"></span><span>      </span><span class="hs-comment">-- we could have a function of type (a-&gt;Var), but Var</span><span>
</span><span id="line-985"></span><span>      </span><span class="hs-comment">-- isn't available yet, alas</span><span>
</span><span id="line-986"></span><span>
</span><span id="line-987"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{Random printing helpers}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-994"></span><span>
</span><span id="line-995"></span><span class="hs-comment">-- We have 31-bit Chars and will simply use Show instances of Char and String.</span><span>
</span><span id="line-996"></span><span>
</span><span id="line-997"></span><span class="hs-comment">-- | Special combinator for showing character literals.</span><span>
</span><span id="line-998"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprHsChar"><span class="hs-identifier hs-type">pprHsChar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-999"></span><span id="pprHsChar"><span class="annot"><span class="annottext">pprHsChar :: Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprHsChar"><span class="hs-identifier hs-var hs-var">pprHsChar</span></a></span></span><span> </span><span id="local-6989586621680788926"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788926"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788926"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\x10ffff'</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word32 -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word32
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Int
</span><a href="../../base/src/GHC.Base.html#ord"><span class="hs-identifier hs-var">ord</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788926"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word32"><span class="hs-identifier hs-type">Word32</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1000"></span><span>            </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788926"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1001"></span><span>
</span><span id="line-1002"></span><span class="hs-comment">-- | Special combinator for showing string literals.</span><span>
</span><span id="line-1003"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprHsString"><span class="hs-identifier hs-type">pprHsString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1004"></span><span id="pprHsString"><span class="annot"><span class="annottext">pprHsString :: FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprHsString"><span class="hs-identifier hs-var hs-var">pprHsString</span></a></span></span><span> </span><span id="local-6989586621680788923"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680788923"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; [String] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; [String]
</span><a href="../../base/src/GHC.Show.html#showMultiLineString"><span class="hs-identifier hs-var">showMultiLineString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; String
</span><a href="GHC.Data.FastString.html#unpackFS"><span class="hs-identifier hs-var">unpackFS</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680788923"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1005"></span><span>
</span><span id="line-1006"></span><span class="hs-comment">-- | Special combinator for showing bytestring literals.</span><span>
</span><span id="line-1007"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprHsBytes"><span class="hs-identifier hs-type">pprHsBytes</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.Internal.html#ByteString"><span class="hs-identifier hs-type">ByteString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1008"></span><span id="pprHsBytes"><span class="annot"><span class="annottext">pprHsBytes :: ByteString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprHsBytes"><span class="hs-identifier hs-var hs-var">pprHsBytes</span></a></span></span><span> </span><span id="local-6989586621680788921"><span class="annot"><span class="annottext">ByteString
</span><a href="#local-6989586621680788921"><span class="hs-identifier hs-var">bs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680788919"><span class="annot"><span class="annottext">escaped :: String
</span><a href="#local-6989586621680788919"><span class="hs-identifier hs-var hs-var">escaped</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Word8 -&gt; String) -&gt; [Word8] -&gt; String
forall (t :: * -&gt; *) a b. Foldable t =&gt; (a -&gt; [b]) -&gt; t a -&gt; [b]
</span><a href="../../base/src/Data.Foldable.html#concatMap"><span class="hs-identifier hs-var">concatMap</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; String
</span><a href="#local-6989586621680788917"><span class="hs-identifier hs-var">escape</span></a></span><span> </span><span class="annot"><span class="annottext">([Word8] -&gt; String) -&gt; [Word8] -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString -&gt; [Word8]
</span><a href="../../bytestring/src/Data.ByteString.html#unpack"><span class="hs-identifier hs-var">BS.unpack</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString
</span><a href="#local-6989586621680788921"><span class="hs-identifier hs-var">bs</span></a></span><span>
</span><span id="line-1009"></span><span>                </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; [String] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; [String]
</span><a href="../../base/src/GHC.Show.html#showMultiLineString"><span class="hs-identifier hs-var">showMultiLineString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788919"><span class="hs-identifier hs-var">escaped</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span>
</span><span id="line-1010"></span><span>    </span><span class="hs-keyword">where</span><span> </span><span class="annot"><a href="#local-6989586621680788917"><span class="hs-identifier hs-type">escape</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-1011"></span><span>          </span><span id="local-6989586621680788917"><span class="annot"><span class="annottext">escape :: Word8 -&gt; String
</span><a href="#local-6989586621680788917"><span class="hs-identifier hs-var hs-var">escape</span></a></span></span><span> </span><span id="local-6989586621680788915"><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621680788915"><span class="hs-identifier hs-var">w</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680788911"><span class="annot"><span class="annottext">c :: Char
</span><a href="#local-6989586621680788911"><span class="hs-identifier hs-var hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Char
</span><a href="../../base/src/GHC.Char.html#chr"><span class="hs-identifier hs-var">chr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word8 -&gt; Int
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621680788915"><span class="hs-identifier hs-var">w</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1012"></span><span>                     </span><span class="hs-keyword">in</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isAscii"><span class="hs-identifier hs-var">isAscii</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788911"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-1013"></span><span>                        </span><span class="hs-keyword">then</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788911"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1014"></span><span>                        </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621680788915"><span class="hs-identifier hs-var">w</span></a></span><span>
</span><span id="line-1015"></span><span>
</span><span id="line-1016"></span><span class="hs-comment">-- Postfix modifiers for unboxed literals.</span><span>
</span><span id="line-1017"></span><span class="hs-comment">-- See Note [Printing of literals in Core] in &quot;GHC.Types.Literal&quot;.</span><span>
</span><span id="line-1018"></span><span class="annot"><a href="GHC.Utils.Outputable.html#primCharSuffix"><span class="hs-identifier hs-type">primCharSuffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primFloatSuffix"><span class="hs-identifier hs-type">primFloatSuffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primIntSuffix"><span class="hs-identifier hs-type">primIntSuffix</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1019"></span><span class="annot"><a href="GHC.Utils.Outputable.html#primDoubleSuffix"><span class="hs-identifier hs-type">primDoubleSuffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primWordSuffix"><span class="hs-identifier hs-type">primWordSuffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primInt64Suffix"><span class="hs-identifier hs-type">primInt64Suffix</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#primWord64Suffix"><span class="hs-identifier hs-type">primWord64Suffix</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1020"></span><span id="primCharSuffix"><span class="annot"><span class="annottext">primCharSuffix :: SDoc
</span><a href="GHC.Utils.Outputable.html#primCharSuffix"><span class="hs-identifier hs-var hs-var">primCharSuffix</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span>
</span><span id="line-1021"></span><span id="primFloatSuffix"><span class="annot"><span class="annottext">primFloatSuffix :: SDoc
</span><a href="GHC.Utils.Outputable.html#primFloatSuffix"><span class="hs-identifier hs-var hs-var">primFloatSuffix</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span>
</span><span id="line-1022"></span><span id="primIntSuffix"><span class="annot"><span class="annottext">primIntSuffix :: SDoc
</span><a href="GHC.Utils.Outputable.html#primIntSuffix"><span class="hs-identifier hs-var hs-var">primIntSuffix</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span>
</span><span id="line-1023"></span><span id="primDoubleSuffix"><span class="annot"><span class="annottext">primDoubleSuffix :: SDoc
</span><a href="GHC.Utils.Outputable.html#primDoubleSuffix"><span class="hs-identifier hs-var hs-var">primDoubleSuffix</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;##&quot;</span></span><span>
</span><span id="line-1024"></span><span id="primWordSuffix"><span class="annot"><span class="annottext">primWordSuffix :: SDoc
</span><a href="GHC.Utils.Outputable.html#primWordSuffix"><span class="hs-identifier hs-var hs-var">primWordSuffix</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;##&quot;</span></span><span>
</span><span id="line-1025"></span><span id="primInt64Suffix"><span class="annot"><span class="annottext">primInt64Suffix :: SDoc
</span><a href="GHC.Utils.Outputable.html#primInt64Suffix"><span class="hs-identifier hs-var hs-var">primInt64Suffix</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;L#&quot;</span></span><span>
</span><span id="line-1026"></span><span id="primWord64Suffix"><span class="annot"><span class="annottext">primWord64Suffix :: SDoc
</span><a href="GHC.Utils.Outputable.html#primWord64Suffix"><span class="hs-identifier hs-var hs-var">primWord64Suffix</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;L##&quot;</span></span><span>
</span><span id="line-1027"></span><span>
</span><span id="line-1028"></span><span class="hs-comment">-- | Special combinator for showing unboxed literals.</span><span>
</span><span id="line-1029"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimChar"><span class="hs-identifier hs-type">pprPrimChar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1030"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimInt"><span class="hs-identifier hs-type">pprPrimInt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimWord"><span class="hs-identifier hs-type">pprPrimWord</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimInt64"><span class="hs-identifier hs-type">pprPrimInt64</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrimWord64"><span class="hs-identifier hs-type">pprPrimWord64</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Integer</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1031"></span><span id="pprPrimChar"><span class="annot"><span class="annottext">pprPrimChar :: Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrimChar"><span class="hs-identifier hs-var hs-var">pprPrimChar</span></a></span></span><span> </span><span id="local-6989586621680788908"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788908"><span class="hs-identifier hs-var">c</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprHsChar"><span class="hs-identifier hs-var">pprHsChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788908"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#primCharSuffix"><span class="hs-identifier hs-var">primCharSuffix</span></a></span><span>
</span><span id="line-1032"></span><span id="pprPrimInt"><span class="annot"><span class="annottext">pprPrimInt :: Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrimInt"><span class="hs-identifier hs-var hs-var">pprPrimInt</span></a></span></span><span> </span><span id="local-6989586621680788907"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680788907"><span class="hs-identifier hs-var">i</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680788907"><span class="hs-identifier hs-var">i</span></a></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#primIntSuffix"><span class="hs-identifier hs-var">primIntSuffix</span></a></span><span>
</span><span id="line-1033"></span><span id="pprPrimWord"><span class="annot"><span class="annottext">pprPrimWord :: Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrimWord"><span class="hs-identifier hs-var hs-var">pprPrimWord</span></a></span></span><span> </span><span id="local-6989586621680788906"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680788906"><span class="hs-identifier hs-var">w</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#word"><span class="hs-identifier hs-var">word</span></a></span><span>    </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680788906"><span class="hs-identifier hs-var">w</span></a></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#primWordSuffix"><span class="hs-identifier hs-var">primWordSuffix</span></a></span><span>
</span><span id="line-1034"></span><span id="pprPrimInt64"><span class="annot"><span class="annottext">pprPrimInt64 :: Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrimInt64"><span class="hs-identifier hs-var hs-var">pprPrimInt64</span></a></span></span><span> </span><span id="local-6989586621680788905"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680788905"><span class="hs-identifier hs-var">i</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680788905"><span class="hs-identifier hs-var">i</span></a></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#primInt64Suffix"><span class="hs-identifier hs-var">primInt64Suffix</span></a></span><span>
</span><span id="line-1035"></span><span id="pprPrimWord64"><span class="annot"><span class="annottext">pprPrimWord64 :: Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrimWord64"><span class="hs-identifier hs-var hs-var">pprPrimWord64</span></a></span></span><span> </span><span id="local-6989586621680788904"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680788904"><span class="hs-identifier hs-var">w</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#word"><span class="hs-identifier hs-var">word</span></a></span><span>    </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621680788904"><span class="hs-identifier hs-var">w</span></a></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#primWord64Suffix"><span class="hs-identifier hs-var">primWord64Suffix</span></a></span><span>
</span><span id="line-1036"></span><span>
</span><span id="line-1037"></span><span class="hs-comment">---------------------</span><span>
</span><span id="line-1038"></span><span class="hs-comment">-- Put a name in parens if it's an operator</span><span>
</span><span id="line-1039"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprPrefixVar"><span class="hs-identifier hs-type">pprPrefixVar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1040"></span><span id="pprPrefixVar"><span class="annot"><span class="annottext">pprPrefixVar :: Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrefixVar"><span class="hs-identifier hs-var hs-var">pprPrefixVar</span></a></span></span><span> </span><span id="local-6989586621680788903"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680788903"><span class="hs-identifier hs-var">is_operator</span></a></span></span><span> </span><span id="local-6989586621680788902"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788902"><span class="hs-identifier hs-var">pp_v</span></a></span></span><span>
</span><span id="line-1041"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680788903"><span class="hs-identifier hs-var">is_operator</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788902"><span class="hs-identifier hs-var">pp_v</span></a></span><span>
</span><span id="line-1042"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788902"><span class="hs-identifier hs-var">pp_v</span></a></span><span>
</span><span id="line-1043"></span><span>
</span><span id="line-1044"></span><span class="hs-comment">-- Put a name in backquotes if it's not an operator</span><span>
</span><span id="line-1045"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprInfixVar"><span class="hs-identifier hs-type">pprInfixVar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1046"></span><span id="pprInfixVar"><span class="annot"><span class="annottext">pprInfixVar :: Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprInfixVar"><span class="hs-identifier hs-var hs-var">pprInfixVar</span></a></span></span><span> </span><span id="local-6989586621680788901"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680788901"><span class="hs-identifier hs-var">is_operator</span></a></span></span><span> </span><span id="local-6989586621680788900"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788900"><span class="hs-identifier hs-var">pp_v</span></a></span></span><span>
</span><span id="line-1047"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680788901"><span class="hs-identifier hs-var">is_operator</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788900"><span class="hs-identifier hs-var">pp_v</span></a></span><span>
</span><span id="line-1048"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'`'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788900"><span class="hs-identifier hs-var">pp_v</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'`'</span></span><span>
</span><span id="line-1049"></span><span>
</span><span id="line-1050"></span><span class="hs-comment">---------------------</span><span>
</span><span id="line-1051"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprFastFilePath"><span class="hs-identifier hs-type">pprFastFilePath</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1052"></span><span id="pprFastFilePath"><span class="annot"><span class="annottext">pprFastFilePath :: FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprFastFilePath"><span class="hs-identifier hs-var hs-var">pprFastFilePath</span></a></span></span><span> </span><span id="local-6989586621680788899"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680788899"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; String -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS
</span><a href="../../filepath/src/System.FilePath.Windows.html#normalise"><span class="hs-identifier hs-var">normalise</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; String
</span><a href="GHC.Data.FastString.html#unpackFS"><span class="hs-identifier hs-var">unpackFS</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680788899"><span class="hs-identifier hs-var">path</span></a></span><span>
</span><span id="line-1053"></span><span>
</span><span id="line-1054"></span><span class="hs-comment">-- | Normalise, escape and render a string representing a path</span><span>
</span><span id="line-1055"></span><span class="hs-comment">--</span><span>
</span><span id="line-1056"></span><span class="hs-comment">-- e.g. &quot;c:\\whatever&quot;</span><span>
</span><span id="line-1057"></span><span class="annot"><a href="GHC.Utils.Outputable.html#pprFilePathString"><span class="hs-identifier hs-type">pprFilePathString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1058"></span><span id="pprFilePathString"><span class="annot"><span class="annottext">pprFilePathString :: String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprFilePathString"><span class="hs-identifier hs-var hs-var">pprFilePathString</span></a></span></span><span> </span><span id="local-6989586621680788896"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788896"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ShowS
</span><a href="#local-6989586621680788895"><span class="hs-identifier hs-var">escape</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ShowS
</span><a href="../../filepath/src/System.FilePath.Windows.html#normalise"><span class="hs-identifier hs-var">normalise</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788896"><span class="hs-identifier hs-var">path</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1059"></span><span>   </span><span class="hs-keyword">where</span><span>
</span><span id="line-1060"></span><span>      </span><span id="local-6989586621680788895"><span class="annot"><span class="annottext">escape :: ShowS
</span><a href="#local-6989586621680788895"><span class="hs-identifier hs-var hs-var">escape</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-1061"></span><span>      </span><span class="annot"><a href="#local-6989586621680788895"><span class="hs-identifier hs-var">escape</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680788894"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788894"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">ShowS
</span><a href="#local-6989586621680788895"><span class="hs-identifier hs-var">escape</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788894"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-1062"></span><span>      </span><span class="annot"><a href="#local-6989586621680788895"><span class="hs-identifier hs-var">escape</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680788893"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788893"><span class="hs-identifier hs-var">x</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680788892"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788892"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680788893"><span class="hs-identifier hs-var">x</span></a></span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">ShowS
</span><a href="#local-6989586621680788895"><span class="hs-identifier hs-var">escape</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788892"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-1063"></span><span>
</span><span id="line-1064"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{Other helper functions}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-1071"></span><span>
</span><span id="line-1072"></span><span id="local-6989586621680790017"><span class="annot"><a href="GHC.Utils.Outputable.html#pprWithCommas"><span class="hs-identifier hs-type">pprWithCommas</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680790017"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- ^ The pretty printing function to use</span><span>
</span><span id="line-1073"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680790017"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span>         </span><span class="hs-comment">-- ^ The things to be pretty printed</span><span>
</span><span id="line-1074"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>        </span><span class="hs-comment">-- ^ 'SDoc' where the things have been pretty printed,</span><span>
</span><span id="line-1075"></span><span>                             </span><span class="hs-comment">-- comma-separated and finally packed into a paragraph.</span><span>
</span><span id="line-1076"></span><span id="pprWithCommas"><span class="annot"><span class="annottext">pprWithCommas :: forall a. (a -&gt; SDoc) -&gt; [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprWithCommas"><span class="hs-identifier hs-var hs-var">pprWithCommas</span></a></span></span><span> </span><span id="local-6989586621680788891"><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680788891"><span class="hs-identifier hs-var">pp</span></a></span></span><span> </span><span id="local-6989586621680788890"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788890"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680788891"><span class="hs-identifier hs-var">pp</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788890"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1077"></span><span>
</span><span id="line-1078"></span><span id="local-6989586621680788889"><span class="annot"><a href="GHC.Utils.Outputable.html#pprWithBars"><span class="hs-identifier hs-type">pprWithBars</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680788889"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- ^ The pretty printing function to use</span><span>
</span><span id="line-1079"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680788889"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span>         </span><span class="hs-comment">-- ^ The things to be pretty printed</span><span>
</span><span id="line-1080"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>        </span><span class="hs-comment">-- ^ 'SDoc' where the things have been pretty printed,</span><span>
</span><span id="line-1081"></span><span>                           </span><span class="hs-comment">-- bar-separated and finally packed into a paragraph.</span><span>
</span><span id="line-1082"></span><span id="pprWithBars"><span class="annot"><span class="annottext">pprWithBars :: forall a. (a -&gt; SDoc) -&gt; [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprWithBars"><span class="hs-identifier hs-var hs-var">pprWithBars</span></a></span></span><span> </span><span id="local-6989586621680788888"><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680788888"><span class="hs-identifier hs-var">pp</span></a></span></span><span> </span><span id="local-6989586621680788887"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788887"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intersperse"><span class="hs-identifier hs-var">intersperse</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#vbar"><span class="hs-identifier hs-var">vbar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680788888"><span class="hs-identifier hs-var">pp</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788887"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1083"></span><span>
</span><span id="line-1084"></span><span class="hs-comment">-- | Returns the separated concatenation of the pretty printed things.</span><span>
</span><span id="line-1085"></span><span id="local-6989586621680788886"><span class="annot"><a href="GHC.Utils.Outputable.html#interppSP"><span class="hs-identifier hs-type">interppSP</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680788886"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680788886"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-1086"></span><span id="interppSP"><span class="annot"><span class="annottext">interppSP :: forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#interppSP"><span class="hs-identifier hs-var hs-var">interppSP</span></a></span></span><span>  </span><span id="local-6989586621680788883"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788883"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788883"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1087"></span><span>
</span><span id="line-1088"></span><span class="hs-comment">-- | Returns the comma-separated concatenation of the pretty printed things.</span><span>
</span><span id="line-1089"></span><span id="local-6989586621680788882"><span class="annot"><a href="GHC.Utils.Outputable.html#interpp%27SP"><span class="hs-identifier hs-type">interpp'SP</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680788882"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680788882"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-1090"></span><span id="interpp%27SP"><span class="annot"><span class="annottext">interpp'SP :: forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#interpp%27SP"><span class="hs-identifier hs-var hs-var">interpp'SP</span></a></span></span><span> </span><span id="local-6989586621680788879"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788879"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680788879"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1091"></span><span>
</span><span id="line-1092"></span><span class="hs-comment">-- | Returns the comma-separated concatenation of the quoted pretty printed things.</span><span>
</span><span id="line-1093"></span><span class="hs-comment">--</span><span>
</span><span id="line-1094"></span><span class="hs-comment">-- &gt; [x,y,z]  ==&gt;  `x', `y', `z'</span><span>
</span><span id="line-1095"></span><span id="local-6989586621680788878"><span class="annot"><a href="GHC.Utils.Outputable.html#pprQuotedList"><span class="hs-identifier hs-type">pprQuotedList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680788878"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680788878"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-1096"></span><span id="pprQuotedList"><span class="annot"><span class="annottext">pprQuotedList :: forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprQuotedList"><span class="hs-identifier hs-var hs-var">pprQuotedList</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotedList"><span class="hs-identifier hs-var">quotedList</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; ([a] -&gt; [SDoc]) -&gt; [a] -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span>
</span><span id="line-1097"></span><span>
</span><span id="line-1098"></span><span class="annot"><a href="GHC.Utils.Outputable.html#quotedList"><span class="hs-identifier hs-type">quotedList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1099"></span><span id="quotedList"><span class="annot"><span class="annottext">quotedList :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotedList"><span class="hs-identifier hs-var hs-var">quotedList</span></a></span></span><span> </span><span id="local-6989586621680788874"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788874"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; [SDoc] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotes"><span class="hs-identifier hs-var">quotes</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788874"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1100"></span><span>
</span><span id="line-1101"></span><span class="annot"><a href="GHC.Utils.Outputable.html#quotedListWithOr"><span class="hs-identifier hs-type">quotedListWithOr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1102"></span><span class="hs-comment">-- [x,y,z]  ==&gt;  `x', `y' or `z'</span><span>
</span><span id="line-1103"></span><span id="quotedListWithOr"><span class="annot"><span class="annottext">quotedListWithOr :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotedListWithOr"><span class="hs-identifier hs-var hs-var">quotedListWithOr</span></a></span></span><span> </span><span id="local-6989586621680788873"><span class="annot"><span class="annottext">xs :: [SDoc]
</span><a href="#local-6989586621680788873"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><span class="hs-identifier">_</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">SDoc
</span><span class="hs-identifier">_</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">[SDoc]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotedList"><span class="hs-identifier hs-var">quotedList</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; [SDoc]
forall a. [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#init"><span class="hs-identifier hs-var">init</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788873"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;or&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotes"><span class="hs-identifier hs-var">quotes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. [a] -&gt; a
</span><a href="../../base/src/GHC.List.html#last"><span class="hs-identifier hs-var">last</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788873"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1104"></span><span class="annot"><a href="GHC.Utils.Outputable.html#quotedListWithOr"><span class="hs-identifier hs-var">quotedListWithOr</span></a></span><span> </span><span id="local-6989586621680788870"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788870"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotedList"><span class="hs-identifier hs-var">quotedList</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788870"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-1105"></span><span>
</span><span id="line-1106"></span><span class="annot"><a href="GHC.Utils.Outputable.html#quotedListWithNor"><span class="hs-identifier hs-type">quotedListWithNor</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1107"></span><span class="hs-comment">-- [x,y,z]  ==&gt;  `x', `y' nor `z'</span><span>
</span><span id="line-1108"></span><span id="quotedListWithNor"><span class="annot"><span class="annottext">quotedListWithNor :: [SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotedListWithNor"><span class="hs-identifier hs-var hs-var">quotedListWithNor</span></a></span></span><span> </span><span id="local-6989586621680788869"><span class="annot"><span class="annottext">xs :: [SDoc]
</span><a href="#local-6989586621680788869"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><span class="hs-identifier">_</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">SDoc
</span><span class="hs-identifier">_</span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">[SDoc]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotedList"><span class="hs-identifier hs-var">quotedList</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; [SDoc]
forall a. [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#init"><span class="hs-identifier hs-var">init</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788869"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;nor&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotes"><span class="hs-identifier hs-var">quotes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. [a] -&gt; a
</span><a href="../../base/src/GHC.List.html#last"><span class="hs-identifier hs-var">last</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788869"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1109"></span><span class="annot"><a href="GHC.Utils.Outputable.html#quotedListWithNor"><span class="hs-identifier hs-var">quotedListWithNor</span></a></span><span> </span><span id="local-6989586621680788868"><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788868"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#quotedList"><span class="hs-identifier hs-var">quotedList</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680788868"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-1110"></span><span>
</span><span id="line-1111"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{Printing numbers verbally}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-1118"></span><span>
</span><span id="line-1119"></span><span id="local-6989586621680790009"><span class="annot"><a href="GHC.Utils.Outputable.html#intWithCommas"><span class="hs-identifier hs-type">intWithCommas</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Real.html#Integral"><span class="hs-identifier hs-type">Integral</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790009"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680790009"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-1120"></span><span class="hs-comment">-- Prints a big integer with commas, eg 345,821</span><span>
</span><span id="line-1121"></span><span id="intWithCommas"><span class="annot"><span class="annottext">intWithCommas :: forall a. Integral a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#intWithCommas"><span class="hs-identifier hs-var hs-var">intWithCommas</span></a></span></span><span> </span><span id="local-6989586621680788847"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788847"><span class="hs-identifier hs-var">n</span></a></span></span><span>
</span><span id="line-1122"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788847"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; a -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">0</span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Integral a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#intWithCommas"><span class="hs-identifier hs-var">intWithCommas</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">-</span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788847"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1123"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788845"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; a -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">0</span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Int
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788844"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1124"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Integral a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#intWithCommas"><span class="hs-identifier hs-var">intWithCommas</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788845"><span class="hs-identifier hs-var">q</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788843"><span class="hs-identifier hs-var">zeroes</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Int
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788844"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1125"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1126"></span><span>    </span><span class="hs-special">(</span><span id="local-6989586621680788845"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788845"><span class="hs-identifier hs-var">q</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680788844"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788844"><span class="hs-identifier hs-var">r</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788847"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; a -&gt; (a, a)
forall a. Integral a =&gt; a -&gt; a -&gt; (a, a)
</span><a href="../../base/src/GHC.Real.html#quotRem"><span class="hs-operator hs-var">`quotRem`</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">1000</span></span><span>
</span><span id="line-1127"></span><span>    </span><span id="local-6989586621680788843"><span class="annot"><span class="annottext">zeroes :: SDoc
</span><a href="#local-6989586621680788843"><span class="hs-identifier hs-var hs-var">zeroes</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788844"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; a -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">100</span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-1128"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788844"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; a -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">10</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'0'</span></span><span>
</span><span id="line-1129"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;00&quot;</span></span><span>
</span><span id="line-1130"></span><span>
</span><span id="line-1131"></span><span class="hs-comment">-- | Converts an integer to a verbal index:</span><span>
</span><span id="line-1132"></span><span class="hs-comment">--</span><span>
</span><span id="line-1133"></span><span class="hs-comment">-- &gt; speakNth 1 = text &quot;first&quot;</span><span>
</span><span id="line-1134"></span><span class="hs-comment">-- &gt; speakNth 5 = text &quot;fifth&quot;</span><span>
</span><span id="line-1135"></span><span class="hs-comment">-- &gt; speakNth 21 = text &quot;21st&quot;</span><span>
</span><span id="line-1136"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier hs-type">speakNth</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1137"></span><span id="speakNth"><span class="annot"><span class="annottext">speakNth :: Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier hs-var hs-var">speakNth</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;first&quot;</span></span><span>
</span><span id="line-1138"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier hs-var">speakNth</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;second&quot;</span></span><span>
</span><span id="line-1139"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier hs-var">speakNth</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;third&quot;</span></span><span>
</span><span id="line-1140"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier hs-var">speakNth</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;fourth&quot;</span></span><span>
</span><span id="line-1141"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier hs-var">speakNth</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">5</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;fifth&quot;</span></span><span>
</span><span id="line-1142"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier hs-var">speakNth</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">6</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sixth&quot;</span></span><span>
</span><span id="line-1143"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNth"><span class="hs-identifier hs-var">speakNth</span></a></span><span> </span><span id="local-6989586621680788835"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788835"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788835"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788834"><span class="hs-identifier hs-var">suffix</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-1144"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1145"></span><span>    </span><span id="local-6989586621680788834"><span class="annot"><span class="annottext">suffix :: String
</span><a href="#local-6989586621680788834"><span class="hs-identifier hs-var hs-var">suffix</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788835"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">20</span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;th&quot;</span></span><span>       </span><span class="hs-comment">-- 11,12,13 are non-std</span><span>
</span><span id="line-1146"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788824"><span class="hs-identifier hs-var">last_dig</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;st&quot;</span></span><span>
</span><span id="line-1147"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788824"><span class="hs-identifier hs-var">last_dig</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;nd&quot;</span></span><span>
</span><span id="line-1148"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788824"><span class="hs-identifier hs-var">last_dig</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;rd&quot;</span></span><span>
</span><span id="line-1149"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;th&quot;</span></span><span>
</span><span id="line-1150"></span><span>
</span><span id="line-1151"></span><span>    </span><span id="local-6989586621680788824"><span class="annot"><span class="annottext">last_dig :: Int
</span><a href="#local-6989586621680788824"><span class="hs-identifier hs-var hs-var">last_dig</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788835"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#rem"><span class="hs-operator hs-var">`rem`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">10</span></span><span>
</span><span id="line-1152"></span><span>
</span><span id="line-1153"></span><span class="hs-comment">-- | Converts an integer to a verbal multiplicity:</span><span>
</span><span id="line-1154"></span><span class="hs-comment">--</span><span>
</span><span id="line-1155"></span><span class="hs-comment">-- &gt; speakN 0 = text &quot;none&quot;</span><span>
</span><span id="line-1156"></span><span class="hs-comment">-- &gt; speakN 5 = text &quot;five&quot;</span><span>
</span><span id="line-1157"></span><span class="hs-comment">-- &gt; speakN 10 = text &quot;10&quot;</span><span>
</span><span id="line-1158"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-type">speakN</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1159"></span><span id="speakN"><span class="annot"><span class="annottext">speakN :: Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var hs-var">speakN</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;none&quot;</span></span><span>  </span><span class="hs-comment">-- E.g.  &quot;he has none&quot;</span><span>
</span><span id="line-1160"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var">speakN</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;one&quot;</span></span><span>   </span><span class="hs-comment">-- E.g.  &quot;he has one&quot;</span><span>
</span><span id="line-1161"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var">speakN</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;two&quot;</span></span><span>
</span><span id="line-1162"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var">speakN</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;three&quot;</span></span><span>
</span><span id="line-1163"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var">speakN</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;four&quot;</span></span><span>
</span><span id="line-1164"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var">speakN</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">5</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;five&quot;</span></span><span>
</span><span id="line-1165"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var">speakN</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">6</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;six&quot;</span></span><span>
</span><span id="line-1166"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var">speakN</span></a></span><span> </span><span id="local-6989586621680788820"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788820"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788820"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-1167"></span><span>
</span><span id="line-1168"></span><span class="hs-comment">-- | Converts an integer and object description to a statement about the</span><span>
</span><span id="line-1169"></span><span class="hs-comment">-- multiplicity of those objects:</span><span>
</span><span id="line-1170"></span><span class="hs-comment">--</span><span>
</span><span id="line-1171"></span><span class="hs-comment">-- &gt; speakNOf 0 (text &quot;melon&quot;) = text &quot;no melons&quot;</span><span>
</span><span id="line-1172"></span><span class="hs-comment">-- &gt; speakNOf 1 (text &quot;melon&quot;) = text &quot;one melon&quot;</span><span>
</span><span id="line-1173"></span><span class="hs-comment">-- &gt; speakNOf 3 (text &quot;melon&quot;) = text &quot;three melons&quot;</span><span>
</span><span id="line-1174"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNOf"><span class="hs-identifier hs-type">speakNOf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1175"></span><span id="speakNOf"><span class="annot"><span class="annottext">speakNOf :: Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#speakNOf"><span class="hs-identifier hs-var hs-var">speakNOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span id="local-6989586621680788819"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788819"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;no&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788819"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'s'</span></span><span>
</span><span id="line-1176"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNOf"><span class="hs-identifier hs-var">speakNOf</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span id="local-6989586621680788818"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788818"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;one&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788818"><span class="hs-identifier hs-var">d</span></a></span><span>                 </span><span class="hs-comment">-- E.g. &quot;one argument&quot;</span><span>
</span><span id="line-1177"></span><span class="annot"><a href="GHC.Utils.Outputable.html#speakNOf"><span class="hs-identifier hs-var">speakNOf</span></a></span><span> </span><span id="local-6989586621680788817"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788817"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621680788816"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788816"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#speakN"><span class="hs-identifier hs-var">speakN</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788817"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788816"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'s'</span></span><span>               </span><span class="hs-comment">-- E.g. &quot;three arguments&quot;</span><span>
</span><span id="line-1178"></span><span>
</span><span id="line-1179"></span><span class="hs-comment">-- | Determines the pluralisation suffix appropriate for the length of a list:</span><span>
</span><span id="line-1180"></span><span class="hs-comment">--</span><span>
</span><span id="line-1181"></span><span class="hs-comment">-- &gt; plural [] = char 's'</span><span>
</span><span id="line-1182"></span><span class="hs-comment">-- &gt; plural [&quot;Hello&quot;] = empty</span><span>
</span><span id="line-1183"></span><span class="hs-comment">-- &gt; plural [&quot;Hello&quot;, &quot;World&quot;] = char 's'</span><span>
</span><span id="line-1184"></span><span id="local-6989586621680790004"><span class="annot"><a href="GHC.Utils.Outputable.html#plural"><span class="hs-identifier hs-type">plural</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680790004"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-1185"></span><span id="plural"><span class="annot"><span class="annottext">plural :: forall a. [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#plural"><span class="hs-identifier hs-var hs-var">plural</span></a></span></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>  </span><span class="hs-comment">-- a bit frightening, but there you are</span><span>
</span><span id="line-1186"></span><span class="annot"><a href="GHC.Utils.Outputable.html#plural"><span class="hs-identifier hs-var">plural</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'s'</span></span><span>
</span><span id="line-1187"></span><span>
</span><span id="line-1188"></span><span class="hs-comment">-- | Determines the form of to be appropriate for the length of a list:</span><span>
</span><span id="line-1189"></span><span class="hs-comment">--</span><span>
</span><span id="line-1190"></span><span class="hs-comment">-- &gt; isOrAre [] = text &quot;are&quot;</span><span>
</span><span id="line-1191"></span><span class="hs-comment">-- &gt; isOrAre [&quot;Hello&quot;] = text &quot;is&quot;</span><span>
</span><span id="line-1192"></span><span class="hs-comment">-- &gt; isOrAre [&quot;Hello&quot;, &quot;World&quot;] = text &quot;are&quot;</span><span>
</span><span id="line-1193"></span><span id="local-6989586621680788815"><span class="annot"><a href="GHC.Utils.Outputable.html#isOrAre"><span class="hs-identifier hs-type">isOrAre</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680788815"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-1194"></span><span id="isOrAre"><span class="annot"><span class="annottext">isOrAre :: forall a. [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#isOrAre"><span class="hs-identifier hs-var hs-var">isOrAre</span></a></span></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;is&quot;</span></span><span>
</span><span id="line-1195"></span><span class="annot"><a href="GHC.Utils.Outputable.html#isOrAre"><span class="hs-identifier hs-var">isOrAre</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;are&quot;</span></span><span>
</span><span id="line-1196"></span><span>
</span><span id="line-1197"></span><span class="hs-comment">-- | Determines the form of to do appropriate for the length of a list:</span><span>
</span><span id="line-1198"></span><span class="hs-comment">--</span><span>
</span><span id="line-1199"></span><span class="hs-comment">-- &gt; doOrDoes [] = text &quot;do&quot;</span><span>
</span><span id="line-1200"></span><span class="hs-comment">-- &gt; doOrDoes [&quot;Hello&quot;] = text &quot;does&quot;</span><span>
</span><span id="line-1201"></span><span class="hs-comment">-- &gt; doOrDoes [&quot;Hello&quot;, &quot;World&quot;] = text &quot;do&quot;</span><span>
</span><span id="line-1202"></span><span id="local-6989586621680788814"><span class="annot"><a href="GHC.Utils.Outputable.html#doOrDoes"><span class="hs-identifier hs-type">doOrDoes</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680788814"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-1203"></span><span id="doOrDoes"><span class="annot"><span class="annottext">doOrDoes :: forall a. [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doOrDoes"><span class="hs-identifier hs-var hs-var">doOrDoes</span></a></span></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;does&quot;</span></span><span>
</span><span id="line-1204"></span><span class="annot"><a href="GHC.Utils.Outputable.html#doOrDoes"><span class="hs-identifier hs-var">doOrDoes</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;do&quot;</span></span><span>
</span><span id="line-1205"></span><span>
</span><span id="line-1206"></span><span class="hs-comment">-- | Determines the form of possessive appropriate for the length of a list:</span><span>
</span><span id="line-1207"></span><span class="hs-comment">--</span><span>
</span><span id="line-1208"></span><span class="hs-comment">-- &gt; itsOrTheir [x]   = text &quot;its&quot;</span><span>
</span><span id="line-1209"></span><span class="hs-comment">-- &gt; itsOrTheir [x,y] = text &quot;their&quot;</span><span>
</span><span id="line-1210"></span><span class="hs-comment">-- &gt; itsOrTheir []    = text &quot;their&quot;  -- probably avoid this</span><span>
</span><span id="line-1211"></span><span id="local-6989586621680788813"><span class="annot"><a href="GHC.Utils.Outputable.html#itsOrTheir"><span class="hs-identifier hs-type">itsOrTheir</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680788813"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-1212"></span><span id="itsOrTheir"><span class="annot"><span class="annottext">itsOrTheir :: forall a. [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#itsOrTheir"><span class="hs-identifier hs-var hs-var">itsOrTheir</span></a></span></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;its&quot;</span></span><span>
</span><span id="line-1213"></span><span class="annot"><a href="GHC.Utils.Outputable.html#itsOrTheir"><span class="hs-identifier hs-var">itsOrTheir</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;their&quot;</span></span><span>
</span><span id="line-1214"></span><span>
</span><span id="line-1215"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{Error handling}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-1222"></span><span>
</span><span id="line-1223"></span><span class="annot"><a href="GHC.Utils.Outputable.html#callStackDoc"><span class="hs-identifier hs-type">callStackDoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.Types.html#HasCallStack"><span class="hs-identifier hs-type">HasCallStack</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1224"></span><span id="callStackDoc"><span class="annot"><span class="annottext">callStackDoc :: HasCallStack =&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#callStackDoc"><span class="hs-identifier hs-var hs-var">callStackDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1225"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Call stack:&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-1226"></span><span>       </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; [String] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">([String] -&gt; [SDoc]) -&gt; [String] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [String]
</span><a href="../../base/src/Data.OldList.html#lines"><span class="hs-identifier hs-var">lines</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CallStack -&gt; String
</span><a href="../../base/src/GHC.Exception.html#prettyCallStack"><span class="hs-identifier hs-var">prettyCallStack</span></a></span><span> </span><span class="annot"><span class="annottext">CallStack
HasCallStack =&gt; CallStack
</span><a href="../../base/src/GHC.Stack.html#callStack"><span class="hs-identifier hs-var">callStack</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1227"></span><span>
</span><span id="line-1228"></span><span id="local-6989586621680789998"><span class="annot"><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-type">pprPanic</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.Types.html#HasCallStack"><span class="hs-identifier hs-type">HasCallStack</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789998"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1229"></span><span class="hs-comment">-- ^ Throw an exception saying &quot;bug in GHC&quot;</span><span>
</span><span id="line-1230"></span><span id="pprPanic"><span class="annot"><span class="annottext">pprPanic :: forall a. HasCallStack =&gt; String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-var hs-var">pprPanic</span></a></span></span><span> </span><span id="local-6989586621680788805"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788805"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680788804"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788804"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; a
forall a. String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Panic.html#panicDoc"><span class="hs-identifier hs-var">panicDoc</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788805"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788804"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
HasCallStack =&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#callStackDoc"><span class="hs-identifier hs-var">callStackDoc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1231"></span><span>
</span><span id="line-1232"></span><span id="local-6989586621680788802"><span class="annot"><a href="GHC.Utils.Outputable.html#pprSorry"><span class="hs-identifier hs-type">pprSorry</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680788802"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1233"></span><span class="hs-comment">-- ^ Throw an exception saying &quot;this isn't finished yet&quot;</span><span>
</span><span id="line-1234"></span><span id="pprSorry"><span class="annot"><span class="annottext">pprSorry :: forall a. String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprSorry"><span class="hs-identifier hs-var hs-var">pprSorry</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; a
forall a. String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Panic.html#sorryDoc"><span class="hs-identifier hs-var">sorryDoc</span></a></span><span>
</span><span id="line-1235"></span><span>
</span><span id="line-1236"></span><span>
</span><span id="line-1237"></span><span id="local-6989586621680788800"><span class="annot"><a href="GHC.Utils.Outputable.html#pprPgmError"><span class="hs-identifier hs-type">pprPgmError</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680788800"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1238"></span><span class="hs-comment">-- ^ Throw an exception saying &quot;bug in pgm being compiled&quot; (used for unusual program errors)</span><span>
</span><span id="line-1239"></span><span id="pprPgmError"><span class="annot"><span class="annottext">pprPgmError :: forall a. String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPgmError"><span class="hs-identifier hs-var hs-var">pprPgmError</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; a
forall a. String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Panic.html#pgmErrorDoc"><span class="hs-identifier hs-var">pgmErrorDoc</span></a></span><span>
</span><span id="line-1240"></span><span>
</span><span id="line-1241"></span><span id="local-6989586621680789993"><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceDebug"><span class="hs-identifier hs-type">pprTraceDebug</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789993"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789993"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1242"></span><span id="pprTraceDebug"><span class="annot"><span class="annottext">pprTraceDebug :: forall a. String -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTraceDebug"><span class="hs-identifier hs-var hs-var">pprTraceDebug</span></a></span></span><span> </span><span id="local-6989586621680788798"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788798"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span id="local-6989586621680788797"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788797"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span id="local-6989586621680788796"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788796"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-1243"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="GHC.Utils.Misc.html#debugIsOn"><span class="hs-identifier hs-var">debugIsOn</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; Bool
</span><a href="GHC.Driver.Session.html#hasPprDebug"><span class="hs-identifier hs-var">hasPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="GHC.Driver.Session.html#unsafeGlobalDynFlags"><span class="hs-identifier hs-var">unsafeGlobalDynFlags</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; a -&gt; a
forall a. String -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTrace"><span class="hs-identifier hs-var">pprTrace</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788798"><span class="hs-identifier hs-var">str</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788797"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788796"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1244"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                                     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788796"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1245"></span><span>
</span><span id="line-1246"></span><span class="hs-comment">-- | If debug output is on, show some 'SDoc' on the screen</span><span>
</span><span id="line-1247"></span><span id="local-6989586621680788794"><span class="annot"><a href="GHC.Utils.Outputable.html#pprTrace"><span class="hs-identifier hs-type">pprTrace</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680788794"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680788794"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1248"></span><span id="pprTrace"><span class="annot"><span class="annottext">pprTrace :: forall a. String -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTrace"><span class="hs-identifier hs-var hs-var">pprTrace</span></a></span></span><span> </span><span id="local-6989586621680788793"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788793"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span id="local-6989586621680788792"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788792"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span id="local-6989586621680788791"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788791"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; String -&gt; SDoc -&gt; a -&gt; a
forall a. DynFlags -&gt; String -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTraceWithFlags"><span class="hs-identifier hs-var">pprTraceWithFlags</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="GHC.Driver.Session.html#unsafeGlobalDynFlags"><span class="hs-identifier hs-var">unsafeGlobalDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788793"><span class="hs-identifier hs-var">str</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788792"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788791"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1249"></span><span>
</span><span id="line-1250"></span><span class="hs-comment">-- | If debug output is on, show some 'SDoc' on the screen</span><span>
</span><span id="line-1251"></span><span id="local-6989586621680789990"><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceWithFlags"><span class="hs-identifier hs-type">pprTraceWithFlags</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789990"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789990"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1252"></span><span id="pprTraceWithFlags"><span class="annot"><span class="annottext">pprTraceWithFlags :: forall a. DynFlags -&gt; String -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTraceWithFlags"><span class="hs-identifier hs-var hs-var">pprTraceWithFlags</span></a></span></span><span> </span><span id="local-6989586621680788790"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680788790"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680788789"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788789"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span id="local-6989586621680788788"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788788"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span id="local-6989586621680788787"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788787"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-1253"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; Bool
</span><a href="GHC.Driver.Session.html#hasNoDebugOutput"><span class="hs-identifier hs-var">hasNoDebugOutput</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680788790"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788787"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1254"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; (String -&gt; a -&gt; a) -&gt; SDoc -&gt; SDoc -&gt; a -&gt; a
forall a. DynFlags -&gt; (String -&gt; a) -&gt; SDoc -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprDebugAndThen"><span class="hs-identifier hs-var">pprDebugAndThen</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680788790"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; a -&gt; a
forall a. String -&gt; a -&gt; a
</span><a href="../../base/src/Debug.Trace.html#trace"><span class="hs-identifier hs-var">trace</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788789"><span class="hs-identifier hs-var">str</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788788"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788787"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1255"></span><span>
</span><span id="line-1256"></span><span id="local-6989586621680789986"><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceM"><span class="hs-identifier hs-type">pprTraceM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680789986"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789986"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span><span>
</span><span id="line-1257"></span><span id="pprTraceM"><span class="annot"><span class="annottext">pprTraceM :: forall (f :: * -&gt; *). Applicative f =&gt; String -&gt; SDoc -&gt; f ()
</span><a href="GHC.Utils.Outputable.html#pprTraceM"><span class="hs-identifier hs-var hs-var">pprTraceM</span></a></span></span><span> </span><span id="local-6989586621680788784"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788784"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span id="local-6989586621680788783"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788783"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; f () -&gt; f ()
forall a. String -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTrace"><span class="hs-identifier hs-var">pprTrace</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788784"><span class="hs-identifier hs-var">str</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788783"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">() -&gt; f ()
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-1258"></span><span>
</span><span id="line-1259"></span><span class="hs-comment">-- | @pprTraceWith desc f x@ is equivalent to @pprTrace desc (f x) x@.</span><span>
</span><span id="line-1260"></span><span class="hs-comment">-- This allows you to print details from the returned value as well as from</span><span>
</span><span id="line-1261"></span><span class="hs-comment">-- ambient variables.</span><span>
</span><span id="line-1262"></span><span id="local-6989586621680789982"><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceWith"><span class="hs-identifier hs-type">pprTraceWith</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680789982"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789982"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789982"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1263"></span><span id="pprTraceWith"><span class="annot"><span class="annottext">pprTraceWith :: forall a. String -&gt; (a -&gt; SDoc) -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTraceWith"><span class="hs-identifier hs-var hs-var">pprTraceWith</span></a></span></span><span> </span><span id="local-6989586621680788782"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788782"><span class="hs-identifier hs-var">desc</span></a></span></span><span> </span><span id="local-6989586621680788781"><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680788781"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680788780"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788780"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; a -&gt; a
forall a. String -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTrace"><span class="hs-identifier hs-var">pprTrace</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788782"><span class="hs-identifier hs-var">desc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680788781"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788780"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788780"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1264"></span><span>
</span><span id="line-1265"></span><span class="hs-comment">-- | @pprTraceIt desc x@ is equivalent to @pprTrace desc (ppr x) x@</span><span>
</span><span id="line-1266"></span><span id="local-6989586621680789980"><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceIt"><span class="hs-identifier hs-type">pprTraceIt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680789980"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789980"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789980"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1267"></span><span id="pprTraceIt"><span class="annot"><span class="annottext">pprTraceIt :: forall a. Outputable a =&gt; String -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTraceIt"><span class="hs-identifier hs-var hs-var">pprTraceIt</span></a></span></span><span> </span><span id="local-6989586621680788777"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788777"><span class="hs-identifier hs-var">desc</span></a></span></span><span> </span><span id="local-6989586621680788776"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788776"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; (a -&gt; SDoc) -&gt; a -&gt; a
forall a. String -&gt; (a -&gt; SDoc) -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTraceWith"><span class="hs-identifier hs-var">pprTraceWith</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788777"><span class="hs-identifier hs-var">desc</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788776"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1268"></span><span>
</span><span id="line-1269"></span><span class="hs-comment">-- | @pprTraceException desc x action@ runs action, printing a message</span><span>
</span><span id="line-1270"></span><span class="hs-comment">-- if it throws an exception.</span><span>
</span><span id="line-1271"></span><span id="local-6989586621680789976"><span id="local-6989586621680789978"><span class="annot"><a href="GHC.Utils.Outputable.html#pprTraceException"><span class="hs-identifier hs-type">pprTraceException</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Exception.html#ExceptionMonad"><span class="hs-identifier hs-type">ExceptionMonad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680789978"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789978"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680789976"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789978"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680789976"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
</span><span id="line-1272"></span><span id="pprTraceException"><span class="annot"><span class="annottext">pprTraceException :: forall (m :: * -&gt; *) a.
ExceptionMonad m =&gt;
String -&gt; SDoc -&gt; m a -&gt; m a
</span><a href="GHC.Utils.Outputable.html#pprTraceException"><span class="hs-identifier hs-var hs-var">pprTraceException</span></a></span></span><span> </span><span id="local-6989586621680788768"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788768"><span class="hs-identifier hs-var">heading</span></a></span></span><span> </span><span id="local-6989586621680788767"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788767"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-1273"></span><span>    </span><span class="annot"><span class="annottext">(GhcException -&gt; m a) -&gt; m a -&gt; m a
forall (m :: * -&gt; *) a.
ExceptionMonad m =&gt;
(GhcException -&gt; m a) -&gt; m a -&gt; m a
</span><a href="GHC.Utils.Panic.html#handleGhcException"><span class="hs-identifier hs-var">handleGhcException</span></a></span><span> </span><span class="annot"><span class="annottext">((GhcException -&gt; m a) -&gt; m a -&gt; m a)
-&gt; (GhcException -&gt; m a) -&gt; m a -&gt; m a
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680788765"><span class="annot"><span class="annottext">GhcException
</span><a href="#local-6989586621680788765"><span class="hs-identifier hs-var">exc</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">IO a -&gt; m a
forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
</span><a href="../../base/src/Control.Monad.IO.Class.html#liftIO"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">(IO a -&gt; m a) -&gt; IO a -&gt; m a
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-1274"></span><span>        </span><span class="annot"><span class="annottext">String -&gt; IO ()
</span><a href="../../base/src/System.IO.html#putStrLn"><span class="hs-identifier hs-var">putStrLn</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; IO ()) -&gt; String -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocDump"><span class="hs-identifier hs-var">showSDocDump</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="GHC.Driver.Session.html#unsafeGlobalDynFlags"><span class="hs-identifier hs-var">unsafeGlobalDynFlags</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788768"><span class="hs-identifier hs-var">heading</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788767"><span class="hs-identifier hs-var">doc</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-1275"></span><span>        </span><span class="annot"><span class="annottext">GhcException -&gt; IO a
forall a. GhcException -&gt; IO a
</span><a href="GHC.Utils.Panic.html#throwGhcExceptionIO"><span class="hs-identifier hs-var">throwGhcExceptionIO</span></a></span><span> </span><span class="annot"><span class="annottext">GhcException
</span><a href="#local-6989586621680788765"><span class="hs-identifier hs-var">exc</span></a></span><span>
</span><span id="line-1276"></span><span>
</span><span id="line-1277"></span><span class="hs-comment">-- | If debug output is on, show some 'SDoc' on the screen along</span><span>
</span><span id="line-1278"></span><span class="hs-comment">-- with a call stack when available.</span><span>
</span><span id="line-1279"></span><span id="local-6989586621680789962"><span class="annot"><a href="GHC.Utils.Outputable.html#pprSTrace"><span class="hs-identifier hs-type">pprSTrace</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.Types.html#HasCallStack"><span class="hs-identifier hs-type">HasCallStack</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789962"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789962"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1280"></span><span id="pprSTrace"><span class="annot"><span class="annottext">pprSTrace :: forall a. HasCallStack =&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprSTrace"><span class="hs-identifier hs-var hs-var">pprSTrace</span></a></span></span><span> </span><span id="local-6989586621680788758"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788758"><span class="hs-identifier hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; a -&gt; a
forall a. String -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprTrace"><span class="hs-identifier hs-var">pprTrace</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788758"><span class="hs-identifier hs-var">doc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
HasCallStack =&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#callStackDoc"><span class="hs-identifier hs-var">callStackDoc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1281"></span><span>
</span><span id="line-1282"></span><span id="local-6989586621680789960"><span class="annot"><a href="GHC.Utils.Outputable.html#warnPprTrace"><span class="hs-identifier hs-type">warnPprTrace</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.Types.html#HasCallStack"><span class="hs-identifier hs-type">HasCallStack</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789960"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789960"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1283"></span><span class="hs-comment">-- ^ Just warn about an assertion failure, recording the given file and line number.</span><span>
</span><span id="line-1284"></span><span class="hs-comment">-- Should typically be accessed with the WARN macros</span><span>
</span><span id="line-1285"></span><span id="warnPprTrace"><span class="annot"><span class="annottext">warnPprTrace :: forall a. HasCallStack =&gt; Bool -&gt; String -&gt; Int -&gt; SDoc -&gt; a -&gt; a
</span><a href="GHC.Utils.Outputable.html#warnPprTrace"><span class="hs-identifier hs-var hs-var">warnPprTrace</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span>     </span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span>     </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span>     </span><span class="annot"><span class="annottext">SDoc
</span><span class="hs-identifier">_</span></span><span>    </span><span id="local-6989586621680788754"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788754"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="GHC.Utils.Misc.html#debugIsOn"><span class="hs-identifier hs-var">debugIsOn</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788754"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1286"></span><span class="annot"><a href="GHC.Utils.Outputable.html#warnPprTrace"><span class="hs-identifier hs-var">warnPprTrace</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span>     </span><span id="local-6989586621680788752"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788752"><span class="hs-identifier hs-var">_file</span></a></span></span><span> </span><span id="local-6989586621680788751"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788751"><span class="hs-identifier hs-var">_line</span></a></span></span><span> </span><span id="local-6989586621680788750"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788750"><span class="hs-identifier hs-var">_msg</span></a></span></span><span> </span><span id="local-6989586621680788749"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788749"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-1287"></span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; Bool
</span><a href="GHC.Driver.Session.html#hasNoDebugOutput"><span class="hs-identifier hs-var">hasNoDebugOutput</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="GHC.Driver.Session.html#unsafeGlobalDynFlags"><span class="hs-identifier hs-var">unsafeGlobalDynFlags</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788749"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1288"></span><span class="annot"><a href="GHC.Utils.Outputable.html#warnPprTrace"><span class="hs-identifier hs-var">warnPprTrace</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span id="local-6989586621680788748"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788748"><span class="hs-identifier hs-var">_file</span></a></span></span><span> </span><span id="local-6989586621680788747"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788747"><span class="hs-identifier hs-var">_line</span></a></span></span><span> </span><span id="local-6989586621680788746"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788746"><span class="hs-identifier hs-var">_msg</span></a></span></span><span> </span><span id="local-6989586621680788745"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788745"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788745"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1289"></span><span class="annot"><a href="GHC.Utils.Outputable.html#warnPprTrace"><span class="hs-identifier hs-var">warnPprTrace</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>   </span><span id="local-6989586621680788744"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788744"><span class="hs-identifier hs-var">file</span></a></span></span><span>  </span><span id="local-6989586621680788743"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788743"><span class="hs-identifier hs-var">line</span></a></span></span><span>  </span><span id="local-6989586621680788742"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788742"><span class="hs-identifier hs-var">msg</span></a></span></span><span> </span><span id="local-6989586621680788741"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788741"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-1290"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DynFlags -&gt; (String -&gt; a -&gt; a) -&gt; SDoc -&gt; SDoc -&gt; a -&gt; a
forall a. DynFlags -&gt; (String -&gt; a) -&gt; SDoc -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprDebugAndThen"><span class="hs-identifier hs-var">pprDebugAndThen</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="GHC.Driver.Session.html#unsafeGlobalDynFlags"><span class="hs-identifier hs-var">unsafeGlobalDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; a -&gt; a
forall a. String -&gt; a -&gt; a
</span><a href="../../base/src/Debug.Trace.html#trace"><span class="hs-identifier hs-var">trace</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788740"><span class="hs-identifier hs-var">heading</span></a></span><span>
</span><span id="line-1291"></span><span>                    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788742"><span class="hs-identifier hs-var">msg</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
HasCallStack =&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#callStackDoc"><span class="hs-identifier hs-var">callStackDoc</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-1292"></span><span>                    </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680788741"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-1293"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-1294"></span><span>    </span><span id="local-6989586621680788740"><span class="annot"><span class="annottext">heading :: SDoc
</span><a href="#local-6989586621680788740"><span class="hs-identifier hs-var hs-var">heading</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;WARNING: file&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788744"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;line&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788743"><span class="hs-identifier hs-var">line</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1295"></span><span>
</span><span id="line-1296"></span><span class="hs-comment">-- | Panic with an assertion failure, recording the given file and</span><span>
</span><span id="line-1297"></span><span class="hs-comment">-- line number. Should typically be accessed with the ASSERT family of macros</span><span>
</span><span id="line-1298"></span><span id="local-6989586621680789958"><span class="annot"><a href="GHC.Utils.Outputable.html#assertPprPanic"><span class="hs-identifier hs-type">assertPprPanic</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.Types.html#HasCallStack"><span class="hs-identifier hs-type">HasCallStack</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789958"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1299"></span><span id="assertPprPanic"><span class="annot"><span class="annottext">assertPprPanic :: forall a. HasCallStack =&gt; String -&gt; Int -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#assertPprPanic"><span class="hs-identifier hs-var hs-var">assertPprPanic</span></a></span></span><span> </span><span id="local-6989586621680788736"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680788736"><span class="hs-identifier hs-var">_file</span></a></span></span><span> </span><span id="local-6989586621680788735"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680788735"><span class="hs-identifier hs-var">_line</span></a></span></span><span> </span><span id="local-6989586621680788734"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788734"><span class="hs-identifier hs-var">msg</span></a></span></span><span>
</span><span id="line-1300"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; a
forall a. HasCallStack =&gt; String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-var">pprPanic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ASSERT failed!&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788734"><span class="hs-identifier hs-var">msg</span></a></span><span>
</span><span id="line-1301"></span><span>
</span><span id="line-1302"></span><span id="local-6989586621680789988"><span class="annot"><a href="GHC.Utils.Outputable.html#pprDebugAndThen"><span class="hs-identifier hs-type">pprDebugAndThen</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html#DynFlags"><span class="hs-identifier hs-type">DynFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789988"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680789988"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-1303"></span><span id="pprDebugAndThen"><span class="annot"><span class="annottext">pprDebugAndThen :: forall a. DynFlags -&gt; (String -&gt; a) -&gt; SDoc -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprDebugAndThen"><span class="hs-identifier hs-var hs-var">pprDebugAndThen</span></a></span></span><span> </span><span id="local-6989586621680788733"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680788733"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span id="local-6989586621680788732"><span class="annot"><span class="annottext">String -&gt; a
</span><a href="#local-6989586621680788732"><span class="hs-identifier hs-var">cont</span></a></span></span><span> </span><span id="local-6989586621680788731"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788731"><span class="hs-identifier hs-var">heading</span></a></span></span><span> </span><span id="local-6989586621680788730"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788730"><span class="hs-identifier hs-var">pretty_msg</span></a></span></span><span>
</span><span id="line-1304"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; a
</span><a href="#local-6989586621680788732"><span class="hs-identifier hs-var">cont</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#showSDocDump"><span class="hs-identifier hs-var">showSDocDump</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680788733"><span class="hs-identifier hs-var">dflags</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788729"><span class="hs-identifier hs-var">doc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-1305"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-1306"></span><span>     </span><span id="local-6989586621680788729"><span class="annot"><span class="annottext">doc :: SDoc
</span><a href="#local-6989586621680788729"><span class="hs-identifier hs-var hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788731"><span class="hs-identifier hs-var">heading</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680788730"><span class="hs-identifier hs-var">pretty_msg</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1307"></span></pre></body></html>